如何在CKeditor

时间:2017-01-05 22:41:39

标签: ckeditor

这是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 />

谢谢!

1 个答案:

答案 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