Ckeditor - 为什么dataProcessor.htmlFilter.addRules不起作用?怎么解决?

时间:2018-02-18 09:41:47

标签: javascript ckeditor

我想在ckeditor中创建段落时,会自动添加某个类。我写了这段代码,但它不起作用。

CKEDITOR.on('instanceReady', function (ev) {
        var editor = ev.editor;
        editor.dataProcessor.htmlFilter.addRules({
            elements: {
                p: function (el) {
                    el.addClass('myClass');
                }
            }
        });
});

为什么呢?我怎样才能解决我的问题?

1 个答案:

答案 0 :(得分:0)

请使用以下内容。您应该使用dataFilter而不是htmlFilter,最好的方法是使用它们,以避免在design / wysiwyg模式下创建没有类的段落,然后切换到源模式或从编辑器中获取数据。

        var editor = CKEDITOR.replace( 'editor1', {
            language: 'en',
            extraPlugins : 'placeholder',
            on: {
                pluginsLoaded: function( evt ) {
                    evt.editor.dataProcessor.dataFilter.addRules( {
                        elements: {
                            p: function( el ) {
                                //The Html filter works when you load data into editor.
                                if(!el.hasClass('nomargins'))
                                    el.addClass('nomargins');
                            }
                        }
                    } );
                    evt.editor.dataProcessor.htmlFilter.addRules( {
                        elements: {
                            p: function( el ) {
                                //The Html filter works when you get data from editor.
                                if(!el.hasClass('nomargins'))
                                    el.addClass('nomargins');
                            }
                        }
                    } );
                }
            }
        });