Ticket #3671: 3671_3.patch

File 3671_3.patch, 1.6 KB (added by Garry Yao, 15 years ago)
  • _source/core/htmlparser/fragment.js

     
    104104
    105105                        // If the target is the fragment and this element can't go inside
    106106                        // body (if fixForBody).
    107                         if ( fixForBody && !target.type && !CKEDITOR.dtd.$body[ element.name ] )
     107                        if ( fixForBody && !target.type )
    108108                        {
    109                                 var savedCurrent = currentNode;
     109                                var elementName, realElement;
     110                                if ( element.attributes
     111                                         && ( realElement = element.attributes._cke_realelement )
     112                                         && ( realElement = new CKEDITOR.htmlParser.fragment.fromHtml( decodeURIComponent( realElement ) ) )
     113                                         && ( realElement = realElement.children[ 0 ] ) )
     114                                        elementName = realElement.name;
     115                                else
     116                                        elementName =  element.name;
     117                                if ( !( elementName in CKEDITOR.dtd.$body ) )
     118                                {
     119                                        var savedCurrent = currentNode;
    110120
    111                                 // Create a <p> in the fragment.
    112                                 currentNode = target;
    113                                 parser.onTagOpen( fixForBody, {} );
     121                                        // Create a <p> in the fragment.
     122                                        currentNode = target;
     123                                        parser.onTagOpen( fixForBody, {} );
    114124
    115                                 // The new target now is the <p>.
    116                                 target = currentNode;
     125                                        // The new target now is the <p>.
     126                                        target = currentNode;
    117127
    118                                 if ( enforceCurrent )
    119                                         currentNode = savedCurrent;
    120                         }
     128                                        if ( enforceCurrent )
     129                                                currentNode = savedCurrent;
     130                                }
     131                        }
    121132
    122133                        // Rtrim empty spaces on block end boundary. (#3585)
    123134                        if ( element._.isBlockLike
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy