关闭CKEditor 3.0中的封闭<p>标记

Kos*_*801 61 html tags paragraph ckeditor

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

我试过了

  CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;
Run Code Online (Sandbox Code Playgroud)

但这只是将内联换行符更改为<br />,同时保留封闭段落.

目前编写"Test"会产生此输出

<p>
    Test</p>
Run Code Online (Sandbox Code Playgroud)

但我希望它简单

Test
Run Code Online (Sandbox Code Playgroud)

是否有一个配置属性或另一个内联编辑器更适合这个?

Mak*_*jer 87

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>
Run Code Online (Sandbox Code Playgroud)


根据@ Tomkay的评论更新:

从CKEditor的3.6版本开始,如果您希望内联内容自动包含标签,则可以进行配置<p></p>.这是正确的设置:

CKEDITOR.config.autoParagraph = false;
Run Code Online (Sandbox Code Playgroud)

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

  • 我意识到这已被接受为正确的答案,但我认为这不是正确的.这确实可以防止内容被包装在段落标记中,但它也可以防止段落标记在"应该"时生成,而是插入换行符.正确的解决方案将阻止默认<p> </ p>,同时在按下回车键时仍然将内容包装在段落中. (9认同)
  • @MaksymilianMajer你可以配置它.请参阅:http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph (3认同)

Mic*_*ein 32

在互联网上,人们注意到将config.enterMode设置为CKEDITOR.ENTER_BR会从CKEditor中删除包装段落标记.值得注意的是,该设置会更改enter键的行为以插入换行符而不是段落,这是不可取的.

请参阅: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

魔术发生在第410行的wysiwygarea/plugin.js中,编辑器根据config.enterMode选择默认的块元素.更改默认块元素的配置选项将允许我们以div开头,但除非我们通过菜单更改段落格式,否则我们将继续获得每次输入的更多div.

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

可以通过后处理(在服务器上或在CKEditor的getData事件中)删除包装段落标记,但这导致我们遇到与禁用autoParagraph相同的问题:没有顶级块.

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


小智 9

在config.js中试试这个

CKEDITOR.editorConfig = function( config )
{
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_BR;
};
Run Code Online (Sandbox Code Playgroud)


小智 5

找到了!

ckeditor.js第91行...搜索

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

改成

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

转储你的缓存和BAM!


Tim*_*ene 5

将此作为您的 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
    };
Run Code Online (Sandbox Code Playgroud)