使用内联编辑器CKEDITOR 4.2.0和Firefox 23.0.1,我的可编辑div标签的内部html包含<br type="_moz">
。它没有插入IE。
我可以使用javascript轻松找到并替换此标记。
如何在config.js文件中全局处理所有内联可编辑div?
答案 0 :(得分:4)
您不应通过element.innerHTML
(或$(element).html()
)从内联编辑器获取数据。实际存在的内容与CKEditor从editor.getData()
返回的内容之间存在显着差异(这是正确的使用方法)。
这种差异来自这样的事实:数据(由editor.setData()
设置 - 是 - 不要直接设置)需要转换为在contenteditable
元素内更好地编辑。因此,需要恢复该转换(以及由/为浏览器完成的其他奇怪的事情)并且这发生在editor.getData()
上。
PS。如果您不知道从哪里获取编辑器实例,请检查全局CKEDITOR.instances
对象。
答案 1 :(得分:1)
如果使用jQuery,您只需在文档中搜索&lt; br type =“_ moz”&gt;并删除它。当然,您不需要搜索整个文档,只需要搜索您想要的DOM元素。
$(document).find('br').each(function(){
if($(this).attr('type') === '_moz'){
$(this).remove();
}
});
答案 2 :(得分:1)
快速简单的CSS解决方案是将以下内容添加到加载到CKeditor的样式表中:
br[type="_moz"]{display: none;}
答案 3 :(得分: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