CKEditor 4属性过滤正在从放入编辑器的锚标签中剥离任何“href”。我有一个插件,它创建包含一些“自定义”属性的链接。链接看起来像这样:
<a href="#" document-href="abc123">Some Link</a>
当我调用getData()时,CKEditor以这种形式返回链接:
<a href="#" document->Some Link</a>
有没有办法指示CKEditor停止过滤链接属性?有没有人碰巧知道这个正则表达式的来源在哪里,所以我可以解决它?
谢谢!
答案 0 :(得分:4)
我刚刚在CKEditor 4.1上检查了这个链接 - 输出是:
<p><a href="#">Some Link</a></p>
从4.1开始,document-href
被剥离,因为现在允许在编辑器中使用它。您必须添加Advanced Content Filter规则 - 例如:
config.extraAllowedContent = 'a[!href,document-href]';
然后它将在4.1中起作用。在4.1之前它应该默认工作,不设置任何东西。
然而 CKEditor的HTML解析器中存在一个错误。它无法正确解析链接上的sth-href
属性,因此结果为sth-
属性。
现在我建议您将此属性的名称更改为data-url
或其他没有href
结尾的内容。
答案 1 :(得分:2)
尝试在配置文件中设置它。
config.allowedContent = true;
如果它在插入时被过滤,那么你可以试试这个:
//var yourAnchor = '<a href="#" document-href="abc123">Some Link</a>';
editor.insertHtml(yourAnchor, 'unfiltered_html');