我们正在使用CKEditor 4.5.11。我们的配置如下所示:
config.allowedContent = {
$1: {
// Use the ability to specify elements as an object.
elements: CKEDITOR.dtd,
attributes: true,
styles: true,
classes: true
}
};
config.pasteFilter = 'semantic-content';
文档说明如下:
请注意,粘贴过滤器仅适用于外部数据。有三个数据源:
复制并粘贴在同一编辑器(内部),
从一个编辑器复制并粘贴到另一个编辑器(交叉编辑器),
来自网站,MS Word等所有其他来源(外部)。
文档似乎准确描述了我们想要的行为。事实上,在Chrome中,事情就像所描述的那样。但是,在Internet Explorer和Firefox中,我们注意到粘贴过滤器也适用于内部和交叉编辑器粘贴操作(我们不想要它,这似乎与文档相矛盾)。
注意:内部和跨编辑器的拖放操作似乎正如文档中所描述的那样工作。我们只遇到粘贴操作问题。
我们的配置有什么阻止它按预期工作的吗?或者我们误解了文档?或者这可能是一个错误?
更新:当我们通过 Internet Explorer 深入研究此问题时,我们注意到基于标记的一些差异。例如,请考虑以下事项:
<p><span style="color:#ff0000">one two three</span></p>
<p><font color="#ff0000">one two three</font></p>
在span范围内,选择整个范围时,内部复制/粘贴操作会丢失样式。但是,如果仅复制并粘贴“两个三”,则在粘贴内容时(在同一编辑器中)样式不会丢失。
在第二种情况下,复制和粘贴时(在同一编辑器中)格式不会丢失。与第一种情况不同,我们是否复制/粘贴整个段落似乎并不重要。