1

使用内联编辑器 CKEDITOR 4.2.0 和 Firefox 23.0.1,我的可编辑 div 标签的内部 html 丰富了<br type="_moz">. 它不是用 IE 插入的。

我可以使用 javascript 轻松找到并替换此标签。

我如何在 config.js 文件中为我所有的内联可编辑 div 全局处理这个问题?

4

4 回答 4

4

不应该element.innerHTML通过(或$(element).html())从内联编辑器获取数据。实际存在的内容与 CKEditor 返回的内容之间存在显着差异editor.getData()(这是正确的使用方法)。

这种差异来自这样一个事实,即数据(由editor.setData()- 是的 - 也不要直接设置)需要转换为在contenteditable元素内部更好地可编辑。因此,需要恢复这种转换(以及由/为浏览器完成的其他奇怪的事情),这发生在editor.getData().

PS。如果您不知道从哪里获取编辑器实例,请检查全局CKEDITOR.instances对象。

于 2013-08-27T19:49:45.527 回答
1

快速简单的 CSS 解决方案是将以下内容添加到加载到 CKeditor 中的样式表中:

br[type="_moz"]{display: none;}
于 2015-03-02T21:38:54.807 回答
1

如果使用 jQuery,您可以简单地在文档中搜索 < br type="_moz" > 并将其删除。当然你不需要搜索整个文档,只需要你想要的 DOM 元素。

$(document).find('br').each(function(){
    if($(this).attr('type') === '_moz'){
        $(this).remove();
    }
});
于 2014-07-23T15:36:16.917 回答
0

我已经使用了这个补丁,它对我有用。

http://dev.ckeditor.com/attachment/ticket/5767/5767.patch

不幸的是,ckeditor 团队没有使用这个补丁。

所以appendBogus从_中删除函数source/core/dom/element.js并添加新appendBogus函数_source/core/dom/walker.js,然后根据ckeditor.pack文件组合所有js文件以重新创建ckeditor.js

于 2013-11-01T21:02:53.210 回答