原文:修正discuz发帖首次换行无效的问题 
 
具体症状: 
 
无论是DZ官方默认模板还是其他模板,在初次编辑帖子的时候,已经排好段落换行的,发布后经常出现换行消失,比如回车一次和两次的,提交后会发现换行有可能生效,更可能没有变化, 
尤其是图文排版,文字和图片直接的空行很难控制,经常要反复编辑两三次,费时费力。 
 
这个问题已经困扰了几年,由于水平问题一直没有勇气去解决,以下解决方法参考sunguide的方法,非常简单的解决了,在此感谢! 
 
 找遍了百度和google都没有解决方案,连discuz官方都没有出来解决,至今其官网仍有这个问题。 那就自己动手解决吧,顺手打个补丁。虽然走了小路,但是能解决问题。 解决方案:修改static/js/bbcode.js 找到 html2bbcode()方法,添加红色部分: if((allowhtml && fetchCheckbox('htmlon')) || trim(str) == '') { 
    for(i in EXTRAFUNC['html2bbcode']) { 
        EXTRASTR = str; 
        try { 
            eval('str = ' + EXTRAFUNC['html2bbcode'] + '()'); 
        } catch(e) {} 
    } 
    str = str.replace(/<img[^>]+smilieid=(["']?)(\d+)(\1)[^>]*>/ig, function($1, $2, $3) {return smileycode($3);}); 
    str = str.replace(/<img([^>]*aid=[^>]*)>/ig, function($1, $2) {return imgtag($2);}); 
    return str; 
} 
 
//fix first enter cannot start new line 
var divPos = strpos(str,"<div>"); 
if(divPos > 0 ){ 
    if(divPos > 4 && str.substr(divPos - 4,4) == '</p>'){} 
    else{ 
        str = str.substr(0,divPos) + '<br>'+ str.substr(divPos); 
    } 
} 
//end  
来源: 
http://www.discuz.net/thread-3846812-1-1.html 
https://segmentfault.com/a/1190000009142976 |