这是2017年,它是HTML5的时代!在HTML5中,换行符为<br>
,而不是<br />
。但是对于它的生命,我无法让CKeditor放弃<br />
而转而支持<br>
。
错误的<br />
给了我各种各样的问题。其中:
(在Firefox中)在使用<br />
创建的代码块上使用JavaScript的innerHTML,而不是返回<br>
- 这会更改有关更改的比较。
我找到了关于这个问题的旧论坛条目(在相关的程序中,而不是CKeditor本身):
http://ckeditor.com/forums/Support/are-not-validated-W3C-validator-How-change
但建议的修复(在配置文件中更改config.docType
)不起作用!
我在顶级config.js和core / config.js中尝试了一堆不同的docTypes。
在顶级config.js 中,我尝试了:
config.docType = '<!DOCTYPE html>';
在 core / config.js 中,我试过:
docType: '<!DOCTYPE html>',
但没有任何作用! :(
我还尝试在大量文件中查找<br />
的实例,但在CKeditor的核心部分没有找到任何实例。我假设<br />
字符串是动态创建的?
如何让CKeditor吐出<br>
而不是<br />
?
谢谢!
答案 0 :(得分:2)
是的,它花了一些硬核谷歌搜索(难以说出搜索),但我找到了答案!我希望这会有所帮助。
只需添加:
CKEDITOR.on( 'instanceReady', function( ev ) {
// Output self-closing tags the HTML5 way, like <br>
ev.editor.dataProcessor.writer.selfClosingEnd = '>';
});
根据我的理解,它的作用是等待核心插件“HTML输出编写器”被加载 - 当它被修改时,它会修改“writer”,这是一个每个编辑器实例的属性。上面的方法将更改应用于所有编辑器,但也可以对单个编辑器实例执行(虽然我发现很难想象为什么有人会想要执行后者。)
有关详细信息,请参阅CKEditor4文档: How Do I Output HTML Instead of XHTML Code Using CKEditor?
好吧,CKEditor摇滚! :d