歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 29, 2024, 06:21:18 上午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  外掛程式  |  [問題]smileys在firefox下沒作用? « 上篇主題 下篇主題 »
頁: [1]
作者 主題: [問題]smileys在firefox下沒作用?  (閱讀 18680 次)
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 於: 五月 28, 2005, 08:46:28 下午 »

把smileys加上去之後
發現一個小問題,IE可以點選,但firefox不行
不過用firefox測試了一下中文官方官網的smileys卻是可以的
印象中在隨便祭裡面有人問過這個問題
但是隨便祭現在好像沒辦法瀏覽了^o)
有誰可以幫幫我解決這個問題嗎?
感恩啊
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #1 於: 五月 28, 2005, 09:03:54 下午 »

解答詳見這篇
是javascript error
新版的smileys檔案已更新

不過裡面的方法都是過了,也更新過檔案了
結果目前只有Standard模版可以
其他模版都失敗
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #2 於: 五月 29, 2005, 07:47:19 下午 »

將smileys.js做點小修正就可以了
原始程式碼如下:
引用
function writeImgTag( tag )
{
   //var myField = document.NewComment.commentText;
   var myField = document.getElementById( "commentText" );


   tag = ' ' + tag + ' ';
   
   if (document.selection) {
      myField.focus();
      sel = document.selection.createRange();
      sel.text = tag;
      myField.focus();
   }


將紅字部分修改成:

引用
function writeImgTag( tag )
{
   var myField = document.NewComment.commentText;
   //var myField = document.getElementById( "commentText" );


   tag = ' ' + tag + ' ';
   
   if (document.selection) {
      myField.focus();
      sel = document.selection.createRange();
      sel.text = tag;
      myField.focus();
   }
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 五月 30, 2005, 11:19:21 上午 »

其實原本我 commit 到 SVN 上的程式是

程式碼:
var myField =  document.NewComment.commentText; ... (1)


但是 Oscar 改成了

程式碼:
var myField = document.getElementById( "commentText" ); ... (2)


原因是有的人他把 Comment Form 的名稱改了,所以造成第一個程式無法運作。然後 Oscar 就改成 第二個程式,第二個程式會自動搜尋 "commentText" 這個 ID 來找到 這個 Textarea 的物件。

但是不管是 1 還是 2,在 Form 跟 TextArea 這兩個 HTML Tag 內,都必須包含 ID 跟 Name 這兩個 property.

如果你的 表情符號無法運作,一定是在 HTML Tage 少了這兩個 property.
 微笑
 
Mark
已記錄

bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #4 於: 五月 30, 2005, 02:29:10 下午 »

引用自: markwu
但是不管是 1 還是 2,在 Form 跟 TextArea 這兩個 HTML Tag 內,都必須包含 ID 跟 Name 這兩個 property.
如果你的 表情符號無法運作,一定是在 HTML Tage 少了這兩個 property.
 微笑
 Mark


我修改smileys.js之前,我很確定在commentform模版裡面的<form> tag裡面
有這兩個屬性,也沒將ID與Name改成NewComment
結果最後只有Standard模版是正常的
所以後來我就把smileys.js改掉,並修改commentform <form> tag 的ID與Name
都改成NewComment,這樣才成功的解決問題

我想Oscar改的程式無法一體適用吧~因為我修改的過程中發現,許多模版在commentform <form> tag 的寫法都不一樣,不一定都會用NewComment
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #5 於: 五月 31, 2005, 03:48:29 下午 »

引用自: bibicall
引用自: markwu
但是不管是 1 還是 2,在 Form 跟 TextArea 這兩個 HTML Tag 內,都必須包含 ID 跟 Name 這兩個 property.
如果你的 表情符號無法運作,一定是在 HTML Tage 少了這兩個 property.
 微笑
 Mark


我修改smileys.js之前,我很確定在commentform模版裡面的<form> tag裡面
有這兩個屬性,也沒將ID與Name改成NewComment
結果最後只有Standard模版是正常的
所以後來我就把smileys.js改掉,並修改commentform <form> tag 的ID與Name
都改成NewComment,這樣才成功的解決問題

我想Oscar改的程式無法一體適用吧~因為我修改的過程中發現,許多模版在commentform <form> tag 的寫法都不一樣,不一定都會用NewComment


所以Oscar 的方式還比較好喔。

var myField = document.getElementById( "commentText" );

他是用 DOM 結構來找 commetText 這個物件,所以不管 form 的名稱是 XX 還是 YY ,他都可以找到。

用 我原來的方法,反而可能找不到。

Mark
已記錄

bibicall
LifeType 中文發展團隊
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #6 於: 五月 31, 2005, 10:02:39 下午 »

引用自: markwu
所以Oscar 的方式還比較好喔。
var myField = document.getElementById( "commentText" );
他是用 DOM 結構來找 commetText 這個物件,所以不管 form 的名稱是 XX 還是 YY ,他都可以找到。
用 我原來的方法,反而可能找不到。
Mark


雖然Oscar 的方式能夠避免命名不同的問題
可是我親身操作的結果只有Standard模版能夠在firefox下正常運作
所以只好將每個模版都改成NewComment
工程浩大,不過改成Mark 前輩你的方法才能讓firefox運作正常
也不知道是那個環節的問題
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
evenrain
初級會員
**
文章: 98



檢視個人資料
« 回覆文章 #7 於: 六月 01, 2005, 09:26:53 上午 »

引用自: bibicall

雖然Oscar 的方式能夠避免命名不同的問題
可是我親身操作的結果只有Standard模版能夠在firefox下正常運作
所以只好將每個模版都改成NewComment
工程浩大,不過改成Mark 前輩你的方法才能讓firefox運作正常
也不知道是那個環節的問題


那你可能要先確認迴響的 textarea 是不是少了 ID 這個屬性
我剛剛看了一下你前面的回文,似乎只有檢查 Form,
而用 Oscar 的方法,其實是可以不用管 Form 的,
確認一下能不能 Search 到 ID="commetText" 這段文字,
如果沒有的話,就把它加到迴響的 textarea 去

程式碼:

<textarea tabindex="5" id="text" name="commentText" rows="10" cols="40"></textarea>


像我採用的 template 就沒有幫 textarea 加上 ID 的屬性,
所以用 Document.getElementById 當然就找不到,
把它改成

程式碼:

<textarea tabindex="5" id="text" name="commentText" id="commentText" rows="10" cols="40"></textarea>


這樣就可以了
已記錄
maomaode
一般會員
***
文章: 115


檢視個人資料
« 回覆文章 #8 於: 一月 03, 2006, 05:01:54 下午 »

虽然是老早前的文章,我又拿出来晒一晒 吐舌頭
引用
<textarea tabindex="5" id="text" name="commentText" id="commentText" rows="10" cols="40"></textarea>

上面的ID其实重复了, 将 id="text" 直接替换为  id="commentText"  就可以了
已記錄

我的blog:
               http://maomaode.bokeland.com
Blog搬家/同步
               http://banjia.bokeland.com
maomaode
一般會員
***
文章: 115


檢視個人資料
« 回覆文章 #9 於: 一月 04, 2006, 09:17:08 下午 »

不知道为什么, 显示出来的smiley并不全, 可不可以显示出所有的smiley呢? 或者像SMF的这个文章编辑toolbar一样,有一个【附加】的链接呢?
谢谢!
已記錄

我的blog:
               http://maomaode.bokeland.com
Blog搬家/同步
               http://banjia.bokeland.com
lisamaus
新手見習
*
文章: 31



檢視個人資料 個人網站
« 回覆文章 #10 於: 七月 20, 2006, 10:13:13 下午 »

因為遇到同樣的問題就順便測一下

如果沒有像evenrain講的那樣在textarea上加上id="commentText", code如下:
程式碼:
<textarea [color=Red]id="commentText"[/color] tabindex="5" name="commentText" rows="10" cols="40"></textarea>

那在smileys.js裡就一定要用

程式碼:
var myField = document.NewComment.commentText;
//var myField = document.getElementById( "commentText" );

但是不管在textarea上加不加id="commentText", 在commentform.template裡form的name和id一定都要是NewComment, 不然在firefox下就是沒辦法加入表情符號
已記錄

Lisa的樹屋
http://www.lisasbaumhaus.de

虛擬主機資訊
Hostloco.com
MySQL - 4.1.20
evenrain
初級會員
**
文章: 98



檢視個人資料
« 回覆文章 #11 於: 八月 14, 2006, 09:57:37 上午 »

因為遇到同樣的問題就順便測一下

如果沒有像evenrain講的那樣在textarea上加上id="commentText", code如下:
程式碼:
<textarea [color=Red]id="commentText"[/color] tabindex="5" name="commentText" rows="10" cols="40"></textarea>

那在smileys.js裡就一定要用

程式碼:
var myField = document.NewComment.commentText;
//var myField = document.getElementById( "commentText" );

但是不管在textarea上加不加id="commentText", 在commentform.template裡form的name和id一定都要是NewComment, 不然在firefox下就是沒辦法加入表情符號

其實我比較建議採用 getElementById 的作法,
一來需要修改的部份比較少,
二來,getElementById 是標準寫法,通用性也比較高
已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  外掛程式  |  [問題]smileys在firefox下沒作用? « 上篇主題 下篇主題 »
    前往: