是否可以关闭CKEditor 3.x中<p> </ p>中所有书面内容的自动封装?
我试过了
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
但这只是将内联换行符更改为<br />,同时保留了封闭的段落。
当前正在编写“ Test”产生此输出
<p>
Test</p>
但我希望它简单
Test
是否为此具有配置属性,或者是否有另一个内联编辑器更适合于此?
Answers:
CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
-这完全适合我。您是否尝试清除浏览器缓存-有时会出现问题。
您也可以使用jQuery适配器进行检查:
<script type="text/javascript" src="/js/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/js/ckeditor/adapters/jquery.js"></script>
<script type="text/javascript">
$(function() {
$('#your_textarea').ckeditor({
toolbar: 'Full',
enterMode : CKEDITOR.ENTER_BR,
shiftEnterMode: CKEDITOR.ENTER_P
});
});
</script>
根据@Tomkay的评论进行更新:
从CKEditor的3.6版开始,您可以配置是否要将内联内容自动用标签包裹<p></p>
。这是正确的设置:
CKEDITOR.config.autoParagraph = false;
来源:http: //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph
CKEDITOR.ENTER_BR
的值为2
。所以你也可以做enterMode: 2
在整个互联网上,人们已经注意到将config.enterMode设置为CKEDITOR.ENTER_BR会从CKEditor中删除换行段落标签。值得注意的是,该设置更改了回车键的行为以插入换行符而不是段落,这是不希望的。
请参阅:http : //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode “由于其语义值和正确性,建议使用CKEDITOR.ENTER_P设置。”
但是,用于删除该初始段落的config.autoParagraph也不建议使用,因为它引入了“不可预测的可用性问题”,因为编辑器确实需要顶层块元素。
请参阅:http : //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph
神奇之处发生在wysiwygarea / plugin.js,第410行,其中编辑器基于config.enterMode选择默认的块元素。更改默认块元素的配置选项将允许我们以div开头,但是每次按下Enter键我们将继续获得更多的div,除非我们通过菜单更改了段落格式。
请参阅:http : //docs.cksource.com/ckeditor_api/symbols/src/plugins_wysiwygarea_plugin.js.html
可以通过后处理(在服务器上或在CKEditor的getData事件中)删除包装的段落标签,但这使我们陷入与禁用autoParagraph相同的问题:没有顶级块。
我宁愿说这不是一个好的解决方案,而是少数半解,而不是接受将config.enterMode更改为规范的解决方案。
制作您的config.js文件代码
CKEDITOR.editorConfig = function( config ) {
// config.enterMode = 2; //disabled <p> completely
config.enterMode = CKEDITOR.ENTER_BR; // pressing the ENTER KEY input <br/>
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p>
config.autoParagraph = false; // stops automatic insertion of <p> on focus
};
;
后面的CKEDITOR.ENTER_BR
我正在做一些我不感到骄傲的解决方法。在实际上保存到数据库的Python servlet中,我这样做:
if description.startswith('<p>') and description.endswith('</p>'):
description = description[3:-4]
First paragraph</p><p>Second paragraph
吗?
if (substr_count($this->content,'<p>') == 1)
{
$this->content = preg_replace('/<\/?p>/i', '', $this->content);
}
制作您的config.js文件代码
CKEDITOR.editorConfig = function( config ) {
// config.enterMode = 2; //disabled <p> completely
config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input <br/>
config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p>
config.autoParagraph = false; // stops automatic insertion of <p> on focus
};
在VS2015中,这可以将Enter键变成 <br>
myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR
就我个人而言,我不在乎我的结果文本是否只有,<br>
而没有<p>
。它呈现完美,看起来就像我想要的那样。最后,它起作用了。