CKEditor 粘贴过滤器不适用于从 Word 粘贴的内容

CKEditor paste filter is not working for content pasted from Word

我正在寻找一种方法来过滤粘贴到 CKEditor 中的内容,以便粘贴过滤器比活动内容过滤器更具限制性。根据 documentation, a "paste filter" 应该这样做。

我设置了一个简单的 jsfiddle 来演示。 fiddle 设置了 'plain-text'

的粘贴过滤器
CKEDITOR.editorConfig = function(config) {
  config.pasteFilter = 'plain-text';
};
CKEDITOR.replace('editor1');

如果我从 MS Word 中复制 Mac 的样式内容并将其粘贴到编辑器 window 中,样式将保持不变。根据文档,我希望将其粘贴为纯文本。我在 Firefox 和 Chrome.

中都试过了

fiddle只是简单的从CDN加载CKEditor 4.17.1和简单的配置。我一定是做错了什么或者误解了文档。

我也是用的CKEditor 4.17.1,在文档中找到了解决方法。虽然 docs for pasteFilter do not explicitly mention any conditions of its application for plain-text for some reason, this article on content filtering 提到它不适用于来自编辑器的内容:

In browsers where it is possible to recognize whether the content comes (was copied or dragged) from an editor, the paste filter will be applied only to content that does not come from any editor.

这让我觉得也应该有一个选项可以强制编辑器执行此操作,我找到了一个 - forcePasteAsPlainText:

true – Pastes all content as plain text.

false – Preserves content formatting.

allow-word – Content pasted from Microsoft Word will keep its formatting while any other content will be pasted as plain text.

Defaults to false.

这意味着 你必须将 config.forcePasteAsPlainText = trueconfig.pasteFilter = 'plain-text' 一起使用才能强制使用 Word