JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – CKEditor:PasteFromWord忽略pasteFilter大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在CKEditor 4.6.2(目前捆绑在Drupal 8中)默认情况下禁用ACF,以确保某些特殊插件正常工作.所以对于记录:我不想启用ACF,也不能使用allowedContent或disallowedContent.我试图阻止一些元素从Word中注入粘贴(如h1和p [styles]).@H_696_2@

为了实现这一点,我试图将这些添加到pasteFilter,它完美地适用于非Word粘贴的内容,但是当从Word粘贴时,pasteFilter似乎被忽略了?这是一个错误吗?@H_696_2@

那么,我怎么能:@H_696_2@

>保持ACF禁用 – 支持特殊的Drupal元素
>保持启用pastefromword – 检测缩进和列表等特殊的Word样式.
>为所有(包括Word)粘贴添加额外的过滤 – 删除一些元素和属性,如h1,style =“font-family:Verdana”等…

最佳答案
处理从Word粘贴的内容需要进行大量的标记处理才能将其转换为干净的语义内容.来自Word过滤器的粘贴非常具体,涵盖了许多边缘情况(特别是嵌套列表).从Word粘贴它有自己的过滤器并且不重用ACF规则的原因是它可能引起一些冲突 – 它在this issue中描述.@H_696_2@

至于现在,现在有一种开箱即用的方法可以为从Word粘贴的内容添加额外的过滤功能.但是,您可以使用afterPasteFromWord事件来过滤粘贴的数据,如:@H_696_2@

@H_696_2@

var editor = CKEDITOR.replace( 'editor1' );

editor.on( 'afterPasteFromWord',function( evt ) {
    var filter = editor.activeFilter,// Use activeFilter so it reflects ACF setTings.
    // var filter = new CKEDITOR.filter( 'p b' ),// Use custom new filter.
        fragment = CKEDITOR.htmlParser.fragment.fromHtml( evt.data.dataValue ),writer = new CKEDITOR.htmlParser.basicWriter();

    filter.applyTo( fragment );
    fragment.writeHtml( writer );
    evt.data.dataValue = writer.getHtml();
} );

请参阅this codepen demo.@H_696_2@

您也可以参CKEDITOR.filter.applyToCKEDITOR.editor.activeProperty的官方文档.

@H_772_27@

大佬总结

以上是大佬教程为你收集整理的javascript – CKEditor:PasteFromWord忽略pasteFilter全部内容,希望文章能够帮你解决javascript – CKEditor:PasteFromWord忽略pasteFilter所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。