Discuz编辑器源码与所见即所得无法切换修改方法

发布日期  发布: 2009-7-05 | 发布人  发布者: admin | 来源  来源: 江西广告网


这个Bug其实是由默认模板中的JavaScript引起的,原因在于没有对相应的情况进行正确的处理。因为涉及的代码不多,解决的方法也比较简单。 在Discuz的templates/default/post.htm文件中,找到openEditor函数(大约在814行附近),如下:

CODE:

function openEditor() { try { {if $action == 'reply' && !$message} if($('fastpostmessage') && $('fastpostmessage').value) { textobj.value = $('fastpostmessage').value; $('fastpostmessage').value = ''; } {/if} {if $action == 'edit' || $action == 'reply' && $repquote} if(wysiwyg) { initialized = false; newEditor(1, bbcode2html(textobj.value)); } else { newEditor(0); } setCaretAtEnd(); {else} newEditor(wysiwyg); if(editbox) { {if ($action != 'edit' || !$attachments) && (!$swfupload || !$swfattachs)} editbox.className = 'autosave max'; {else} editbox.className = 'autosave'; {/if} } {/if} // .... }问题出在831行的newEditor(wysiwyg)上,并没有进行BBCode到HTML的转换,所以看到的仍然是BBCode的代码形式。把这一行改成下面五行就应该可以解决了:

CODE:

if(wysiwyg) { newEditor(1, bbcode2html(textobj.value)); } else { newEditor(0, textobj.value); } setCaretAtEnd();其中最后的setCaretAtEnd的作用是将光标定位到1# xxx这类的文字末尾
本站文章部分内容来自互联网,供读者交流和学习,如有涉及作者版权问题请及时与我们联系,以便更正或删除。感谢所有提供信息的网站,并欢迎各类媒体与我们进行信息共享合作。
关闭本窗口 | 打印 | 收藏此页 |  推荐给好友 | 举报

版块排行

  • SEO搜索                                    5984
  • Web软件                                    3334
  • 交互设计                                    3279
  • 平面软件                                    2575
  • 设计欣赏                                    2501
  • 游戏世界                                    1244
  • 程序开发                                    830
  • 前沿视觉                                    560
  • 电脑网络                                    514
  • 摄影赏析                                    291