在CKEditor中加载带有一组段落的内容时,它会用 <p>	 替换我的 <p> 标签
<p>	
<p>
这意味着编辑器转换为:
<p>paragraph 1</p> <p>paragraph 2</p> <p>paragraph 3</p>
到最后是这样的:
<p> paragraph 1</p> <p> paragraph 2</p> <p> paragraph 3</p>
如何修复它以便CKEditor在看到段落标记时不添加额外的换行符?
如果您像我一样,并希望在实例级别执行此操作,并且不希望触摸配置文件,以便更新/升级 . 那么这是另一种解决方案 .
CKEDITOR.replace( 'editor1', { on : { instanceReady : function( ev ) { // Output paragraphs as <p>Text</p>. this.dataProcessor.writer.setRules( 'p', { indent : false, breakBeforeOpen : true, breakAfterOpen : false, breakBeforeClose : false, breakAfterClose : true }); } } });
参考:Output Formatting
我相信有一个设置来格式化代码,或自动缩进或沿着这些行的东西 . 它旨在使源代码更具可读性 . 我认为它的有效性是开放的 .
将此行添加到ckeditor.js配置文件中:
n.setRules('p',{indent:false,breakAfterOpen:false});
有关HTML Writer格式的更多信息,请参阅CKSource文档的Developers Guide: Output Formatting .
最好的解决方案,就像一个魅力:
编辑 contents.css 文件并设置段落的样式,例如
p { margin-top:0px; margin-bottom:5px; }
在其他地方(我道歉,我没有记下我从哪里得到它 . ),我找到了代码来解决所有块级标签的问题 . 对于我的项目,额外的新行是一个问题,因为输出到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 }); } });
其中一些要素可能不需要这种处理;很明显,blockTags数组可以根据您的需要轻松编辑 .
5 回答
如果您像我一样,并希望在实例级别执行此操作,并且不希望触摸配置文件,以便更新/升级 . 那么这是另一种解决方案 .
参考:Output Formatting
我相信有一个设置来格式化代码,或自动缩进或沿着这些行的东西 . 它旨在使源代码更具可读性 . 我认为它的有效性是开放的 .
将此行添加到ckeditor.js配置文件中:
有关HTML Writer格式的更多信息,请参阅CKSource文档的Developers Guide: Output Formatting .
最好的解决方案,就像一个魅力:
编辑 contents.css 文件并设置段落的样式,例如
在其他地方(我道歉,我没有记下我从哪里得到它 . ),我找到了代码来解决所有块级标签的问题 . 对于我的项目,额外的新行是一个问题,因为输出到XML并作为CDATA导入到其他应用程序 .
所以,在我的ckeditor_config.js文件中,在CKEDITOR.editorConfig函数之后,我输入:
其中一些要素可能不需要这种处理;很明显,blockTags数组可以根据您的需要轻松编辑 .