CKEditor 中 allowedContent 和 extraAllowedContent 有什么区别?

tex*_*ate 6 javascript ckeditor

在 CKEditor 中,配置中有allowedContent和选项。extraAllowedContent我知道如何allowedContent让您说出 ACF 将留下哪些标签和属性,但为什么会出现allowedContentextraAllowedContent?他们不做同样的事情吗?

我发现的一件事是,当想要允许 iframe 时,它​​似乎只有在输入 ; 时才iframe[*]有效extraAllowedContent。如果你把它放进去,它就不起作用allowedContent

为什么?有什么不同?

Wik*_*alc 8

手动设置allowedContent指示编辑器完全忽略启用的插件指定的允许标记(例如列表插件“寄存器”<ul><li>标签)。它可能会导致从 CKEditor 中删除功能。例如,如果您使用标准预设并且仅允许iframe[*],则大多数按钮将从工具栏“消失”(如粗体、列表、表格),因为您不再允许诸如<strong><ul>等元素<li>

extraAllowedContent顾名思义,允许您扩展 CKEditor 默认允许的允许标签/属性列表。CKEditor 默认支持的功能直接取决于您启用的功能。

以下链接很好地解释了这一点: https: //docs.ckeditor.com/ckeditor4/docs/# !/guide/dev_acf

我发现的一件事是,当想要允许 iframe 时,只有将 iframe[*] 放入 extraAllowedContent 中,它似乎才起作用;如果你把它放在 allowedContent 中,它不起作用。

看起来您在代码中犯了一个错误,因为我刚刚检查了该情况并且它按预期工作(iframe 元素保留在内容中,所有其他标记都被删除,大多数工具栏按钮消失了)。

最后但并非最不重要的一点是,不要仅仅使用 extraAllowedContent 启用 iframe 元素,而是考虑向 CKEditor 添加另一个插件来正确处理编辑 iframe ( https://ckeditor.com/cke4/addon/iframe )。如果将其添加到构建中,它将自动允许<iframe>元素。