我在 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>
</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> </p>
<p>Something else</p>