kindeditor编辑器插入程序代码后在<p>标签和<pre>标签间会多出一行<p><br></p>
导致前台显示的时候很难看。如下图:
我想实现的情况是1,但是出现的情况是2
而且初次提交代码没问题,当修改的时候用到“HTML代码”标签的时候,就会出现多一行。
分析原因,应该是
1,插入代码的时候会出现<p><pre>...</pre></p>这种情况
2,修改的时候会变成<p></p><pre>...</pre><p></p>这种情况
3,切换“HTML代码”的时候kindeditor会把<p></p>替换成<p><br></p>
4,再次提交代码,就会出现多一行的问题出现。
修改的思路是把<p></p><pre>替换为<pre>,</pre><p></p>替换为</pre>,就不会出现多一行了。
打开kindeditor-all.js747行,插入两行代码
html = html.replace(/(<\/pre>)(\s*)(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig, '$1$2'); // <p></p><pre>替换为<pre>
html = html.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)(\s*)(<pre\s[^>]*>)/ig, '$3$4'); // </pre><p></p>替换为</pre>
如图: