Ticket #3671: 3671_2.patch

File 3671_2.patch, 2.5 KB (added by Garry Yao, 15 years ago)
  • _source/plugins/pagebreak/plugin.js

     
    7979
    8080                // Creates the fake image used for this element.
    8181                breakObject = editor.createFakeElement( breakObject, 'cke_pagebreak', 'div' );
    82 
    83                 var ranges = editor.getSelection().getRanges();
    84 
    85                 for ( var range, i = 0 ; i < ranges.length ; i++ )
    86                 {
    87                         range = ranges[ i ];
    88 
    89                         if ( i > 0 )
    90                                 breakObject = breakObject.clone( true );
    91 
    92                         range.splitBlock( 'p' );
    93                         range.insertNode( breakObject );
    94                 }
    95         }
     82                editor.insertElement( breakObject );
     83        }
    9684};
  • _source/plugins/htmldataprocessor/plugin.js

     
    138138        CKEDITOR.htmlDataProcessor = function()
    139139        {
    140140                this.writer = new CKEDITOR.htmlWriter();
     141                this.basicWriter = new CKEDITOR.htmlParser.basicWriter();
    141142                this.dataFilter = new CKEDITOR.htmlParser.filter();
    142143                this.htmlFilter = new CKEDITOR.htmlParser.filter();
    143144        };
     
    162163                        // Now use our parser to make further fixes to the structure, as
    163164                        // well as apply the filter.
    164165                        var fragment = CKEDITOR.htmlParser.fragment.fromHtml( div.innerHTML, fixForBody ),
    165                                 writer = new CKEDITOR.htmlParser.basicWriter();
     166                                writer = this.basicWriter;
    166167
    167168                        fragment.writeHtml( writer, this.dataFilter );
    168169
     
    171172
    172173                toDataFormat : function( html, fixForBody )
    173174                {
    174                         var writer = this.writer,
    175                                 fragment = CKEDITOR.htmlParser.fragment.fromHtml( html, fixForBody );
     175                        var basicWriter = this.basicWriter,
     176                                htmlWriter = this.writer,
     177                                fragment = CKEDITOR.htmlParser.fragment.fromHtml( html ),
     178                                html;
    176179
    177                         writer.reset();
     180                        // First running through html filters, after this step, some
     181                        // schema-invalid markup might be generated due to element
     182                        // replacement(#3671).
     183                        fragment.writeHtml( basicWriter, this.htmlFilter );
     184                        html = basicWriter.getHtml( true );
    178185
    179                         fragment.writeHtml( writer, this.htmlFilter );
    180 
    181                         return writer.getHtml( true );
     186                        // Then format the intermediate html to final output.
     187                        fragment = CKEDITOR.htmlParser.fragment.fromHtml( html, fixForBody );
     188                        fragment.writeHtml( htmlWriter );
     189                        return htmlWriter.getHtml( true );
    182190                }
    183191        };
    184192})();
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy