如何禁止 CKEditor 添加 "cke:" 到对象标签的开头?

How do I disable CKEditor from adding "cke:" to the beginning of object tags?

我正在尝试为 CKEditor 创建一个简单的插件,将一段代码粘贴到编辑器中。我试过向内容过滤器添加例外,甚至使用 config.allowedContent = true; 完全禁用内容过滤器 在我的 config.js 文件中。

<object></object> 标签首次粘贴到编辑器中时,它工作正常,但是当用户切换到 "source" 模式并返回 WYSIWYG 模式时,我发现 <object>标签现在变成了 <cke:object></cke:object> 标签,这导致它从所见即所得模式中消失。

如何禁用此功能?

我承认我不完全理解源代码,但我四处寻找,罪魁祸首似乎是文件:

/ckeditor/core/filter.js

第 1463 行和第 1533 行之间

还有:

/ckeditor/core/htmldataprocessor.js

从第 788 行开始。

注意:我使用的是 CKEditor 4.5.6

它们都包含对 cke: 的引用和对 append/remove 的正则表达式 cke: 前缀。

几个月前,我曾尝试在此处查看 Stack Overflow、文档,甚至 submitted a ticket,但未能找到答案。

这是因为您没有处理此 <object> 标记的功能。例如,如果您启用 Flash 插件并插入一个 Flash 对象,它将被转换为一个占位符(检查 this code)。由于安全原因,可编辑区域内不能有<object>标签,需要通过插件处理,转化为placeholder或widget。