Discuz6.0编辑器在Chrome下代码模式/所见即所得模式无法切换解决方法

1.直接使用Discuz编辑器的所见即所得模式时:
Uncaught TypeError: Cannot call method ‘appendChild’ of /include/javascript/editor.js:129 undefined

2.将Discuz编辑器从代码模式切换到所见即所得模式时(无法切换):
Uncaught TypeError: Cannot call method ‘replace’ of /include/javascript/bbcode.js:387 undefined

第一个错误的出现在editor.js文件中的function setEditorStyle()函数中,解决办法是在
var headNode = editdoc.getElementsByTagName("head")[0];
headNode.appendChild(editcss);
中间加入:
if(!headNode){headNode = editdoc.getElementsByTagName("body")[0];}//by ZZR

第二个错误实际是出现在bbcode.js文件中的function bbcode2html(str)函数中,原因是Chrome、Firefox中对函数的处理有点不一样,函数的最后一个元素是push。解决办法是在:
re = new RegExp(addslashes(smilies[id]['code']), "g");
的前面加入:
if(isNaN(parseInt(id))) continue; //by ZZR

也可以直接下载:http://bbs.vpser.net/include/javascript/editor.jshttp://bbs.vpser.net/include/javascript/bbcode.js 覆盖对应目录下的文件

转自:http://blog.zxlm.cn/2009/04/%E8%A7%A3%E5%86%B3discuz%E7%BC%96%E8%BE%91%E5%99%A8%E5%9C%A8chromeoperafirefox%E4%B8%8B%E7%9A%84%E4%BD%BF%E7%94%A8%E9%97%AE%E9%A2%98.html

发表评论

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.