本帖最后由 howfarstudio 于 2019-4-25 14:05 编辑
拿了官网N年经验,能解决的,都发上来分享下,亲测可用
---------------------------------------------------------------------
具体症状:
无论是DZ官方默认模板还是其他模板,在初次编辑帖子的时候,已经排好段落换行的,发布后经常出现换行消失,比如回车一次和两次的,提交后会发现换行有可能生效,更可能没有变化,
尤其是图文排版,文字和图片直接的空行很难控制,经常要反复编辑两三次,费时费力。
这个问题已经困扰了几年,由于水平问题一直没有勇气去解决,以下解决方法参考sunguide的方法,非常简单的解决了,在此感谢!
解决方法:
找到static/js/bbcode.js,搜索if((allowhtml && fetchCheckbox('htmlon')) || trim(str) == '') {,在这行下方大约315行的下方(Discuz X3.4)加入以下代码:
- //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
复制代码 本段修改前后对比如下:
修改前:
- if((allowhtml && fetchCheckbox('htmlon')) || trim(str) == '') {
- for(i in EXTRAFUNC['html2bbcode']) {
- EXTRASTR = str;
- try {
- eval('str = ' + EXTRAFUNC['html2bbcode'][i] + '()');
- } 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;
- }
复制代码 修改后:
- if((allowhtml && fetchCheckbox('htmlon')) || trim(str) == '') {
- for(i in EXTRAFUNC['html2bbcode']) {
- EXTRASTR = str;
- try {
- eval('str = ' + EXTRAFUNC['html2bbcode'][i] + '()');
- } 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
复制代码
方法出处:https://segmentfault.com/a/1190000009142976 再次感谢!
|