【问题标题】:Want to remove the <br type="_moz"> tag in CKEDITOR 4.2.0想要删除 CKEDITOR 4.2.0 中的 <br type="_moz"> 标签
【发布时间】:2013-08-27 15:39:44
【问题描述】:

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

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

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

【问题讨论】:

  • 这听起来像是Firefox自动插入的填充元素,但在调用getData方法时应该被CKEditor过滤掉。不行吗?

标签: ckeditor


【解决方案1】:

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

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

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

【讨论】:

  • getData() 确实将来自内部 html 的字符串放入 HTML 实体中。例如ö 变成 ö你怎么处理?保存为 unicode 并输出为 unicode?我的数据库设置为 UTF-8。
【解决方案2】:

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

$(document).find('br').each(function(){
    if($(this).attr('type') === '_moz'){
        $(this).remove();
    }
});

【讨论】:

  • 一个班轮:$('br[type=_moz]').remove()
【解决方案3】:

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

br[type="_moz"]{display: none;}

【讨论】:

    【解决方案4】:

    我用过这个补丁,它对我有用。

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

    很遗憾,ckeditor 团队没有使用这个补丁。

    所以从_source/core/dom/element.js中删除appendBogus函数并将新的appendBogus函数添加到_source/core/dom/walker.js,然后按照ckeditor.pack文件合并所有js文件以重新创建ckeditor.js

    【讨论】:

      猜你喜欢
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多