我有2个CKEditor实例。一个编辑器(A)支持多个小部件,另一个编辑器B有一个Advanced Content Filter具有这些设置,以确保只有<p>
,<br>
,<em>
和{{1}第二个编辑器中允许使用标签:
<strong>
我的小部件包含图片和其他一些标签以及此过滤器设置:
config.allowedContent = 'p br em strong';
当编辑器A中包含这种小部件的文本被粘贴到编辑器B中时,我希望编辑器去除小部件,但它不会。这是有道理的,因为窗口小部件的allowedContent设置可确保不删除图像。
但是,我的第二个编辑器对这个小部件一无所知,我想配置过滤器来去掉所有粘贴的小部件。
我已尝试将Disallowed Content设置添加到编辑器B:
config.allowedContent = 'img div figure figcaption';
但是如果没有成功,我会继续在编辑器B中获得小部件div。
将小部件粘贴到CKEditor提供的示例编辑器的editor 4中也是如此。即使ACF不允许,也会插入窗口小部件。
是否有其他过滤器选项可防止小部件潜入身体?
答案 0 :(得分:2)
不幸的是,目前还没有简单的方法来过滤ACF的粘贴事件 - 请参阅http://dev.ckeditor.com/ticket/11115。它已分配4.5.0里程碑,但我觉得我们无法在此版本中进行此更改。有一些架构限制使这张票非常复杂。
您可以尝试拦截editor#paste
上的粘贴内容,解析内容并手动过滤粘贴的小部件。困难的事情(实际的#11115阻止程序)是在粘贴的内容中,您将找到小部件的上传版本,包含所有包装器,所有内部属性等.ACF无法直接应用于此内容,因为ACF是应该过滤下载的小部件版本。因此,您需要手动或使用特殊的CKEDITOR.filter
实例进行过滤。
您可以发现此问题很有用 - Apply CKEditor Advanced Content Filter to a string。