【问题标题】:filtering CKEditor HTML attributes过滤 CKEditor HTML 属性
【发布时间】:2013-03-20 17:51:31
【问题描述】:

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

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

我似乎找不到这个,但对任何有洞察力的人开放。

【问题讨论】:

  • 所以你在服务器上做这个?您使用的是哪种技术?

标签: html ckeditor filtering


【解决方案1】:

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

  1. (推荐)Advanced Content Filter (ACF)(从 4.1 开始):

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

    使用 ACF,您可以精确地指定您的编辑器将接受(生成)哪些标签、哪些属性、类和样式。见more about the rules。还可以下载最新的 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;
                }
            }
        }
    });
    

【讨论】:

  • 万一其他人有这个问题,允许的元素用“;”分隔,空格或逗号不起作用。
  • @Kevin 对。您也可以使用object format 来避免错误。
猜你喜欢
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多