【问题标题】:How to configure CKEditor to allow html block-level tags to be wrapped in an anchor tag如何配置 CKEditor 以允许将 html 块级标签包装在锚标签中
【发布时间】:2013-11-18 11:59:58
【问题描述】:

我想在链接中包含一些块标签 (valid in 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 中,这样你就可以将它们转换为一个链接。

标签: html ckeditor


【解决方案1】:

你可以尝试做类似的事情:

CKEDITOR.dtd.a.div = 1;
CKEDITOR.dtd.a.p = 1;

源代码: http://ckeditor.com/forums/Support/CKEditor-wont-allow-inside

【讨论】:

    【解决方案2】:

    目前 CKEditor (4.2) 只是 xHTML/HTML4 编辑器。不支持 HTML5 DTD(这是动态的,顺便说一句),这是您问题的根源。我也担心没有解决方法/配置,因为不同的 DTD 意味着不同的解析器,所以 CKEditor 不是适合你的工具。对不起。

    您可以在this ticket找到更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 2011-02-24
      • 2013-01-13
      • 2013-04-24
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多