我的CKEditor 4.6有一些奇怪的行为,有时它会从范围中剥离一个属性。
我有一个自定义插件,它添加了@mentions,并插入了一个用作占位符的span,以供以后解析服务器端时使用,
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次)发生的是,提及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调用期间,仍然有一个属性消失。