Filter CKEditor-过滤html而不创建编辑器实例

Filter CKEditor-过滤html而不创建编辑器实例,filter,ckeditor,Filter,Ckeditor,有没有一种方法可以实现像CKEditor.filter('somehtml')? 如何使用默认规则创建一个过滤器实例,然后使用它?非常简单。您所要做的就是合并并: 函数gimmeFilter(规则){ var过滤器=新的CKEDITOR.filter(规则), writer=new CKEDITOR.htmlParser.basicWriter(); var fn=函数(输入、输出、消息){ var fragment=CKEDITOR.htmlParser.fragment.fromHtml(输

有没有一种方法可以实现像
CKEditor.filter('somehtml')
如何使用默认规则创建一个
过滤器
实例,然后使用它?

非常简单。您所要做的就是合并并:

函数gimmeFilter(规则){
var过滤器=新的CKEDITOR.filter(规则),
writer=new CKEDITOR.htmlParser.basicWriter();
var fn=函数(输入、输出、消息){
var fragment=CKEDITOR.htmlParser.fragment.fromHtml(输入);
writer.reset();
filter.applyTo(片段);
fragment.writeHtml(writeHtml);
返回writer.getHtml();
};
fn.allow=功能(规则){
允许(规则);
};
返回fn;
}
var f=gimmeFilter({
“p b i”:{
课程:“foo”,
样式:“文本对齐”
}
} );
f(“

foo bar bum

”); >>>“

foo-bar-bum


查看标签、
style=“color:red”
class=“boom”
都不见了

谢谢大家!!但我正在寻找一种方法,在不创建编辑器的情况下获得与我的编辑器相同的规则。所以我可以这样做:
var f=gimmeFilter(CKEDITOR.getAutomaticModeRules())。您不需要创建任何实例即可使上述代码正常工作。但是,如果需要了解实例的默认规则,请参见
CKEDITOR.instances.instanceName.filter.allowedContent
CKEDITOR.instances.instanceName.filter.allowedContent
filter.allow
生成,不能直接传递给构造函数。有没有办法获取原始规则或将
过滤器。允许内容
转换为原始规则?嗯。。。但你想克隆过滤器?如果您只想重用
编辑器.filter
,则不需要这样做。尽管如此,克隆应该不会太复杂-您需要将
过滤器。允许内容
转换为原始格式,并且它们非常相似(如果不完全相同)。@TrantorLiu您成功了吗?我也在试着做同样的事情?
function gimmeFilter( rules ) {
    var filter = new CKEDITOR.filter( rules ),
        writer = new CKEDITOR.htmlParser.basicWriter();

    var fn = function( input, output, msg ) {
        var fragment = CKEDITOR.htmlParser.fragment.fromHtml( input );
        writer.reset();

        filter.applyTo( fragment );
        fragment.writeHtml( writer );
        return writer.getHtml();
    };

    fn.allow = function( rules ) {
        filter.allow( rules );
    };

    return fn;
}

var f = gimmeFilter( {
    'p b i': {
        classes: 'foo',
        styles: 'text-align'
    }
} );

f( '<p style="text-align:right"><b class="boom" style="color: red">foo</b> <i class="foo">bar</i> <u>bum</u></p>' );
>>> "<p style="text-align:right"><b>foo</b> <i class="foo">bar</i> bum</p>"