如何在CKEDITOR中选择退出空白段落?

我在 How can I clean up Django bleach + CKeditor debris?发布了一个关于如何从Python / Django中删除侵入空白段落的相关注释.

但是,我想更直接地询问CKeditor是否提供选择退出添加的空白段落的功能,或者在提交之前删除所有空白段落.

HTML源的一个示例,其中一个以编程方式添加了空白段落(缩进行由一个选项卡缩进,而不是由空格缩进):

<p>
    This little bunny is <em>shy</em>, but also very affectionate.</p>
<p>
    &nbsp;</p>
<p>
    Would you like to meet her?</p>

我为每个保存添加了一个段落.

除了用户主动之外,如何防止,排除等空白段落的添加?

谢谢,

最佳答案 问题是你要在存储到数据库之前删除开始和最终结束标记,这会留下不匹配的html标记,因此无效的html(…每当你有多个p块时).所以,

<p>Something</p>
<p>Something else</p>

变为:

Something</p>  // invalid html - closing tag with no corresponding opening tag
<p>Something else  // invalid html - opening tag with no corresponding closing tag

CKEditor实际上是在加载回编辑器时尝试修复无效的html.

如果你不想要段落标签,我建议使用config选项config.autoParagraph = false;和/或config.enterMode = CKEDITOR.ENTER_BR; (仅当用户键入新行时,CKEditor将使用< br />),这取决于您的要求.

另一种可能的解决方案是在保存之前更改您的功能,以查找并替换所有出现的’< p>‘与”和’< / p>‘使用’< br />‘,在最后删除任何尾随’< br />‘之前.

复制问题的步骤:

答:您可以转到http://sdk.ckeditor.com/samples/accessibilitychecker.html并单击“源”按钮,然后粘贴以下内容:

<p>Something</p>
<p>Something else</p>

B.单击Source,它将正确显示此html.

C.再次单击“源”返回源模式,仅显示2个p元素

D.删除开头段落和结束段落标签:

Something</p>  // invalid html - closing tag with no corresponding opening tag
<p>Something else  // invalid html - opening tag with no corresponding closing tag

E单击Source两次以渲染输出,然后查看调整后的源:

<p>Something</p>
<p>&nbsp;</p>
<p>Something else</p>
点赞