筛选编辑器HTML属性

筛选编辑器HTML属性,html,ckeditor,filtering,Html,Ckeditor,Filtering,我发现了很多关于在CKEditor提交数据时过滤完整HTML标记的帖子(例如:剥离脚本、样式等)。我需要过滤的是特定属性,但保留原始标记 例如,如果用户提交具有p、DIV或SPAN标记的数据,我可以,但是如果他们提交具有STYLE属性的p、DIV或SPAN,我需要删除STYLE属性 我似乎找不到这一点,但对任何有见解的人都是开放的。有两种解决方案: (推荐)(自4.1起): 使用ACF,您可以精确地指定编辑器将接受(生成)哪些标记、哪些属性、类和样式。看见还可以下载最新的4.1版本,并使用官方的

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

例如,如果用户提交具有p、DIV或SPAN标记的数据,我可以,但是如果他们提交具有STYLE属性的p、DIV或SPAN,我需要删除STYLE属性


我似乎找不到这一点,但对任何有见解的人都是开放的。

有两种解决方案:

  • (推荐)(自4.1起):

    使用ACF,您可以精确地指定编辑器将接受(生成)哪些标记、哪些属性、类和样式。看见还可以下载最新的4.1版本,并使用官方的高级内容过滤器示例进行播放

  • 第二个选项是数据处理器(3.x,4.x):


  • 你是在服务器上这么做的?您使用的是哪种技术?如果其他人有此问题,则允许的元素被“;”分隔,空格或逗号无效。@Kevin Right。您还可以使用来避免bug。
    CKEDITOR.replace( 'editor1', {
        allowedContent: 'span div p[id,class]; h1 a img hr table tr td ul ol li[*]{*}(*)'
    } );
    
    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;
                }
            }
        }
    });