我的涉众正在Drupal(8.6.13)中使用CKEditor 4.10.1版本。
他们有一个用例,经常从Google Docs复制并粘贴到WYSIWYG文本区域。 Google使用内联CSS属性。这是一个示例:
<span style="font-size:36pt;font-family:Merriweather;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your Name</span></p>
它们通常必须更改文本的大小以及字体的大小。在上面的示例中,它们是font-size:36pt;font-family:Merriweather;
标记中的style
。
我正在查看pasteFilter配置指令。在示例中,它们显示了如何过滤某些标签以及具有某些属性的标签:
config.pasteFilter = 'h1 h2 p ul ol li; img[!src, alt]; a[!href]';
但是,我要删除的只是某些CSS样式。例如,如果粘贴输入为
<span style="font-size:36pt;font-family:Merriweather;vertical-align:baseline;">Hello</span>
然后我想让源阅读
<span style="vertical-align:baseline;">Hello</span>
即仅font-size:36pt;font-family:Merriweather;
被删除。 (而且我想删除任何font-size
和font-family
规范。)
pasteFilter
有可能吗?如果是这样,我该如何表达?
编辑白名单解决方案不符合我们的接受标准,因为我的涉众希望保留其他指令,例如粗体,斜体等。我们不想删除 all < / em>样式或整个span
标签;我们只想删除font-size
和font-family
。
答案 0 :(得分:1)
根据How to Allow Everything Except…,您可以使用:
config.allowedContent = {
$1: {
// Use the ability to specify elements as an object.
elements: CKEDITOR.dtd,
attributes: true,
styles: true,
classes: true
}
};
config.disallowedContent = '*{font*}';
// if you want to be more specific: config.disallowedContent = 'span{font-size,font-family}';
我对其进行了测试,并且可以正常工作,请亲身体验我创建的JSFiddle。