closuresCKEditor 3.0中的<p>标签

是否有可能在CKEditor 3.x中closures自动封装<p> </ p>中的所有书面内容?

我试过了

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; 

但这只是将内联换行符更改为<br />,而留下封闭的段落。

目前写“testing”产生这个输出

 <p> Test</p> 

但我希望它是简单的

 Test 

有没有这个configuration属性或另一个内联编辑器是更适合这个?

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; – 这对我来说是完美的。 你有没有尝试清除你的浏览器caching – 有时这是一个问题。
您也可以使用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版开始,您可以configuration是否让内联内容自动包装为<p></p>这样的标签。 这是正确的设置:

 CKEDITOR.config.autoParagraph = false; 

来源: http : //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph

在互联网上,人们已经注意到,将config.enterMode设置为CKEDITOR.ENTER_BR将从CKEditor中去除包装段落标签。 值得注意的是,这个设置改变了input键的行为来插入换行符而不是段落,这是不可取的。

请参阅: http : //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode “由于语义值和正确性,build议使用CKEDITOR.ENTER_P设置。”

但是,devise用于删除初始段落config.autoParagraph的设置也不可取,因为它引入了“不可预知的可用性问题”,因为编辑器确实需要顶级块元素。

请参阅: http : //docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph

这个魔法发生在第410行的wysiwygarea / plugin.js上,编辑器根据config.enterModeselect默认的块元素。 一个configuration选项来改变默认的块元素将允许我们开始一个div,但是除非我们通过菜单改变了段落格式,否则我们会继续每一个inputbutton获得更多的div。

请参阅: http : //docs.cksource.com/ckeditor_api/symbols/src/plugins_wysiwygarea_plugin.js.html

使用后处理(无论是在服务器上还是在CKEditor的getData事件中),都可以删除包装段落标签,但这会导致与禁用autoParagraph相同的问题:没有顶层块。

我宁愿说,没有一个好的解决scheme,而是一些半解决scheme,而不是接受更改config.enterMode作为规范的解决scheme。

在config.js中试试这个

 CKEDITOR.editorConfig = function( config ) { config.enterMode = CKEDITOR.ENTER_BR; config.shiftEnterMode = CKEDITOR.ENTER_BR; }; 

find了!

ckeditor.js行#91 …search

B.config.enterMode==3?'div':'p'

改成

B.config.enterMode==3?'div':'' (NO P!)

转储caching和BAM!

我正在做一些我不以自己为解决scheme而自豪的事情。 在我实际保存到数据库的Python servlet中,我这样做:

 if description.startswith('<p>') and description.endswith('</p>'): description = description[3:-4] 

使这个你的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 }; 

编辑源代码(或closures富文本),并用divreplacep标签。 然后用你想要的方式来devisediv。

ckEditor不会在下一次提交时添加任何包装器元素,因为您已经有了div。

(这解决了我的问题,我正在使用Drupal,需要小的html代码片段,编辑器总是添加额外的代码,但剩下的时间我想要包装p标签)。

 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 }; 

设置这样的configuration:

  CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR CKEDITOR.config.forcePasteAsPlainText = true 

在VS2015中,这将Enter键变成了<br>

 myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR 

就我个人而言,我不在乎我的结果文本是否只有<br>而不是<p> 。 它呈现完美,它看起来是我想要的方式。 最后,它的工作。