反正有没有阻止CKEditor 4过滤我的锚标签属性?

时间:2013-04-03 18:28:25

标签: javascript html ckeditor wysiwyg

CKEditor 4属性过滤正在从放入编辑器的锚标签中剥离任何“href”。我有一个插件,它创建包含一些“自定义”属性的链接。链接看起来像这样:

<a href="#" document-href="abc123">Some Link</a>

当我调用getData()时,CKEditor以这种形式返回链接:

<a href="#" document->Some Link</a>

有没有办法指示CKEditor停止过滤链接属性?有没有人碰巧知道这个正则表达式的来源在哪里,所以我可以解决它?

谢谢!

2 个答案:

答案 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结尾的内容。

我创建了一张票:https://dev.ckeditor.com/ticket/10298

答案 1 :(得分:2)

尝试在配置文件中设置它。

    config.allowedContent = true;

如果它在插入时被过滤,那么你可以试试这个:

//var yourAnchor = '<a href="#" document-href="abc123">Some Link</a>';

editor.insertHtml(yourAnchor, 'unfiltered_html');