3

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

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

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

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

有没有办法指示 CKEditor 停止过滤链接属性?有没有人碰巧知道这个正则表达式在源代码中的位置,所以我可以修复它?

谢谢!

4

2 回答 2

4

我刚刚在 CKEditor 4.1 上检查了这个链接 - 输出是:

<p><a href="#">Some Link</a></p>

从 4.1开始,document-href由于它现在在编辑器中被允许,所以被剥离。您必须添加高级内容过滤器规则 - 例如:

config.extraAllowedContent = 'a[!href,document-href]';

然后它将在 4.1 中工作。在 4.1 之前它应该默认工作,无需设置任何东西。

但是CKEditor 的 HTML 解析器中有一个错误。它不能正确解析sth-href链接上的属性,因此结果是一个sth-属性。

现在,我建议您将此属性的名称更改为data-url或其他任何名称,但不要href结束。

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

于 2013-04-04T08:02:10.630 回答
2

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

    config.allowedContent = true;

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

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

editor.insertHtml(yourAnchor, 'unfiltered_html');
于 2013-04-03T19:13:23.320 回答