javascript - CKEditor 4.6 有时会在不进行配置的情况下剥离属性
问题描述
我的 CKEditor 4.6 有一些奇怪的行为,它有时会从跨度中删除一个属性。
我有一个自定义插件,它添加了@mentions,并插入了一个用作占位符的跨度,以便稍后解析服务器端,如下所示:
var placeholder = '<span class="mention" contenteditable="false" mention-id="' + clickedSuggestion.Id + '">@' + clickedSuggestion.Title + '</span>';
var mentionElement = CKEDITOR.dom.element.createFromHtml(placeholder);
editor.insertElement(mentionElement);
在我的配置中,我允许了这些元素:
editor.config.extraPlugins += ',mention'; // my custom plugin
editor.config.extraAllowedContent = { span: { classes: 'mention', attributes: 'contenteditable' } };
现在有时(可能 20 次中有 1 次)发生的情况是,mention-id 属性被剥夺了。
// what sometimes happens
<span class="mention" contenteditable="false">@foo</span>
// usual output
<span class="mention" contenteditable="false" mention-id="bar">@foo</span>
我意识到在 extraAllowedContent 配置中没有提及 ID,这将是问题的逻辑原因。但另一方面,它在大多数情况下都非常有效!
我不明白为什么该属性没有一直被剥离?谢谢!
编辑:所以在使用 editor.insertElement() 时似乎未应用 extraAllowedContent,因此排除了错误的配置。但是在 createFromHtml 或 insertElement 调用期间仍然有一个属性消失。
解决方案
推荐阅读
- c - 填充字节是否在内存分配器中被视为已分配或未分配?
- javascript - 这两个javascript代码之间的区别
- python - AIO Castle Cavalry - 我的代码太慢了,有什么办法可以缩短它吗?
- php - Simplephp 和数组
- c# - 统一调整玩家行为以适应 AI
- python - 继续调用函数,直到满足条件 Python
- javascript - 持续时间超过 24 小时的 Jquery 输入掩码
- cmake - 使用 CMake,如何在 gtest_discover_tests --gtest_list_tests 调用上设置环境属性?
- c# - 无法加载文件或程序集 'System.ComponentModel.Annotations,版本 = 4.2.0.0,
- javascript - 从本地存储中获取数据(最喜欢的项目)