主題: [問題]smileys在firefox下沒作用? 作者: bibicall 於 五月 28, 2005, 08:46:28 下午 把smileys加上去之後
發現一個小問題,IE可以點選,但firefox不行 不過用firefox測試了一下中文官方官網的smileys卻是可以的 印象中在隨便祭裡面有人問過這個問題 但是隨便祭現在好像沒辦法瀏覽了^o) 有誰可以幫幫我解決這個問題嗎? 感恩啊 主題: [問題]smileys在firefox下沒作用? 作者: bibicall 於 五月 28, 2005, 09:03:54 下午 解答詳見這篇 (http://forums.lifetype.net/viewtopic.php?t=2135&highlight=smileys+plugin)
是javascript error 新版的smileys檔案已更新 不過裡面的方法都是過了,也更新過檔案了 結果目前只有Standard模版可以 其他模版都失敗 主題: [問題]smileys在firefox下沒作用? 作者: bibicall 於 五月 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(); } 主題: [問題]smileys在firefox下沒作用? 作者: markwu 於 五月 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 主題: [問題]smileys在firefox下沒作用? 作者: bibicall 於 五月 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 主題: [問題]smileys在firefox下沒作用? 作者: markwu 於 五月 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 主題: [問題]smileys在firefox下沒作用? 作者: bibicall 於 五月 31, 2005, 10:02:39 下午 引用自: markwu 所以Oscar 的方式還比較好喔。 var myField = document.getElementById( "commentText" ); 他是用 DOM 結構來找 commetText 這個物件,所以不管 form 的名稱是 XX 還是 YY ,他都可以找到。 用 我原來的方法,反而可能找不到。 Mark 雖然Oscar 的方式能夠避免命名不同的問題 可是我親身操作的結果只有Standard模版能夠在firefox下正常運作 所以只好將每個模版都改成NewComment 工程浩大,不過改成Mark 前輩你的方法才能讓firefox運作正常 也不知道是那個環節的問題 主題: [問題]smileys在firefox下沒作用? 作者: evenrain 於 六月 01, 2005, 09:26:53 上午 引用自: bibicall 雖然Oscar 的方式能夠避免命名不同的問題 可是我親身操作的結果只有Standard模版能夠在firefox下正常運作 所以只好將每個模版都改成NewComment 工程浩大,不過改成Mark 前輩你的方法才能讓firefox運作正常 也不知道是那個環節的問題 那你可能要先確認迴響的 textarea 是不是少了 ID 這個屬性 我剛剛看了一下你前面的回文,似乎只有檢查 Form, 而用 Oscar 的方法,其實是可以不用管 Form 的, 確認一下能不能 Search 到 ID="commetText" 這段文字, 如果沒有的話,就把它加到迴響的 textarea 去 程式碼:
像我採用的 template 就沒有幫 textarea 加上 ID 的屬性, 所以用 Document.getElementById 當然就找不到, 把它改成 程式碼:
這樣就可以了 主題: Re: [問題]smileys在firefox下沒作用? 作者: maomaode 於 一月 03, 2006, 05:01:54 下午 虽然是老早前的文章,我又拿出来晒一晒 :-P
引用 <textarea tabindex="5" id="text" name="commentText" id="commentText" rows="10" cols="40"></textarea> 上面的ID其实重复了, 将 id="text" 直接替换为 id="commentText" 就可以了 主題: Re: [問題]smileys在firefox下沒作用? 作者: maomaode 於 一月 04, 2006, 09:17:08 下午 不知道为什么, 显示出来的smiley并不全, 可不可以显示出所有的smiley呢? 或者像SMF的这个文章编辑toolbar一样,有一个【附加】的链接呢?
谢谢! 主題: Re: [問題]smileys在firefox下沒作用? 作者: lisamaus 於 七月 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; 但是不管在textarea上加不加id="commentText", 在commentform.template裡form的name和id一定都要是NewComment, 不然在firefox下就是沒辦法加入表情符號 主題: Re: [問題]smileys在firefox下沒作用? 作者: evenrain 於 八月 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; 但是不管在textarea上加不加id="commentText", 在commentform.template裡form的name和id一定都要是NewComment, 不然在firefox下就是沒辦法加入表情符號 其實我比較建議採用 getElementById 的作法, 一來需要修改的部份比較少, 二來,getElementById 是標準寫法,通用性也比較高 |