如何配置CKEditor以允许将HTML块级标记包装在锚标记中

7

我想将一些块级标签包装在链接中(HTML5中有效):

<a href="http://example.com">
  <div>foo</div>
  <p>bar</p>
  <span>baz</span>
  <strong>zoom</strong>
</a>

但是 CKEditor 会重写代码,使得链接放置在块级标签内,并允许其包裹内联标签,如上面的代码将被替换为以下代码:
<div><a href="http://example.com">foo</a></div>
<p><a href="http://example.com">bar</a></p>
<a href="http://example.com"><span>baz</span> <strong>zoom</strong> </a>

我该如何禁用这种行为?

在CKEditor配置中,我正在使用config.allowedContent = true;来禁用允许标签的过滤。

我们还使用config.autoParagraph = false;来不要求根级标签被包含在段落中。

我尝试使用config.extraAllowedContent = "a p; a div";, 但这似乎没有任何效果。


你可以对内容进行后处理;例如,为要包装的内容添加一个类,然后在之后强制它们。或者将它们全部包装在一个带有某些ID/类的DIV中,这样你就可以将它们转换为链接。 - Joel Peltonen
1
CKEDITOR BUG: http://dev.ckeditor.com/ticket/7961 和 http://dev.ckeditor.com/ticket/9457 - epascarello
2个回答

10

3

目前CKEditor(4.2)只支持xHTML/HTML4编辑器。没有支持HTML5 DTD(顺便说一下,它是动态的),这是你问题的根源。我也很抱歉,没有解决方法或配置可以使用,因为不同的DTD意味着不同的解析器,所以CKEditor并不适合你。对不起。

您可以在此处找到更多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接