1

全て!CKEditor に問題があります。ul、ol リストを div で囲む必要があります。したがって、パネルのリストボタンを押すと、次のような結果が得られます。

 <div class=”dash-list”&gt;
     <ul>
          <li></li>
     </ul>
 </div>
4

1 に答える 1

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 );
                    }
                }
            } );
        }
    }
} );
于 2013-04-16T08:11:49.460 に答える