过滤CKEditor HTML属性

jbu*_*era 3 html filtering ckeditor

我发现很多关于在CKEditor提交数据时过滤完整HTML标签的帖子(例如:剥离SCRIPT,STYLE等).我需要过滤的是特定属性,但保留原始标记.

例如,我很好,如果用户提交具有P,DIV或SPAN标签数据,但如果他们提交一个P,DIV或SPAN具有STYLE属性,我需要删除的风格属性.

我似乎无法找到这个,但对有洞察力的人开放.

ole*_*leq 5

您的问题有两种解决方案:

  1. (推荐)高级内容过滤器(ACF)(自4.1起):

    CKEDITOR.replace( 'editor1', {
        allowedContent: 'span div p[id,class]; h1 a img hr table tr td ul ol li[*]{*}(*)'
    } );
    
    Run Code Online (Sandbox Code Playgroud)

    使用ACF,您可以精确指定编辑器接受(生成)哪些标签,哪些属性,类和样式.参见更多有关规则.同时下载最新的4.1版本并使用官方高级内容过滤器示例.

  2. 第二个选项是dataProcessor(3.x,4.x):

    editor.dataProcessor.htmlFilter.addRules( {
        elements: {
            $: function( element ) { // you can specify p, div etc. here instead of $ (wildcard)
                if ( element.attributes.style ) {
                     console.log( 'Nuke style attr on' element );
                     delete element.attributes.style;
                }
            }
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)