|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
这个Bug其实是由默认模板中的JavaScript引起的,原因在于没有对相应的情况进行正确的处理。因为涉及的代码不多,解决的方法也比较简单。
在Discuz的templates/default/post.htm文件中,找到openEditor函数(大约在814行附近),如下:- 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的代码形式。把这一行改成下面五行就应该可以解决了:- if(wysiwyg) {
- newEditor(1, bbcode2html(textobj.value));
- } else {
- newEditor(0, textobj.value);
- }
- setCaretAtEnd();
复制代码 其中最后的setCaretAtEnd的作用是将光标定位到1# xxx这类的文字末尾 |
|