CKEditor ul ol enclosure

时间:2013-04-15 19:44:20

标签: javascript ckeditor

一切! 我有CKEditor的问题! 我需要用div包含ul,ol列表。所以,当我按下面板上的列表按钮时,我会得到这样的结果:

 <div class=”dash-list”>
     <ul>
          <li></li>
     </ul>
 </div>

1 个答案:

答案 0 :(得分:1)

没有重新编写list插件的最简单方法是在编辑器输出中包装列表:

var wrappable = [];

var editor = CKEDITOR.replace( 'editor1', {
    on: {
        instanceReady: function() {
            this.on( 'toDataFormat', function( evt ) {
                var el, wrap;

                while ( ( el = wrappable.pop() ) ) {
                    wrap = el.parent;

                    // Abort if already wrapped...
                    if ( wrap && wrap.type == CKEDITOR.NODE_ELEMENT && wrap.attributes[ 'class' ] == 'dash-list' )
                        return wrap;

                    // Wrap el...    
                    wrap = new CKEDITOR.htmlParser.element( 'div', { 'class': 'dash-list' } );
                    el.replaceWith( wrap );
                    wrap.add( el );
                }
            }, null, null, 11 );

            this.dataProcessor.htmlFilter.addRules( {
                elements: {
                    ul: function( element ) {
                        wrappable.push( element );
                    },
                    ol: function( element ) {
                        wrappable.push( element );
                    }
                }
            } );
        }
    }
} );