在CKEditor中添加<p>时删除不需要的换行符

dov*_*ove 14 javascript wysiwyg newline ckeditor

在CKEditor中加载带有一组段落的内容时,它会用我的<p>标签替换<p>&#x9;

这意味着编辑器转换为:

<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
Run Code Online (Sandbox Code Playgroud)

最终结果如下:

<p>
   paragraph 1</p>
<p>
   paragraph 2</p>
<p>
   paragraph 3</p>
Run Code Online (Sandbox Code Playgroud)

我如何修复它,以便CKEditor在看到段落标记时不添加额外的换行符?

eon*_*eon 26

在其他地方(我道歉,我没有记下我从哪里得到它.),我找到了代码来解决所有块级标签的问题.对于我的项目,额外的新行是一个问题,因为输出到XML并作为CDATA导入到其他应用程序.

所以,在我的ckeditor_config.js文件中,在CKEDITOR.editorConfig函数之后,我输入:

CKEDITOR.on('instanceReady', function( ev ) {
  var blockTags = ['div','h1','h2','h3','h4','h5','h6','p','pre','li','blockquote','ul','ol',
  'table','thead','tbody','tfoot','td','th',];

  for (var i = 0; i < blockTags.length; i++)
  {
     ev.editor.dataProcessor.writer.setRules( blockTags[i], {
        indent : false,
        breakBeforeOpen : true,
        breakAfterOpen : false,
        breakBeforeClose : false,
        breakAfterClose : true
     });
  }
});
Run Code Online (Sandbox Code Playgroud)

其中一些元素可能不需要这种处理; 很明显,blockTags数组可以根据您的需要轻松编辑.


小智 12

将此行添加到ckeditor.js配置文件中:

n.setRules('p',{indent:false,breakAfterOpen:false});
Run Code Online (Sandbox Code Playgroud)

有关HTML编写器格式的更多信息,请参阅开发人员指南: CKSource文档中的输出格式.