有没有办法做类似的事情CKEditor.filter('some html');
?如何filter
使用默认规则创建实例然后使用它?
问问题
515 次
1 回答
2
这很简单。您所要做的就是结合CKEDITOR.htmlParser和CKEDITOR.filter:
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>"
看到那个<u>
标签,style="color: red"
就走class="boom"
了。
于 2013-06-18T07:02:37.760 回答