Changeset 862


Ignore:
Timestamp:
09/22/07 00:33:54 (7 years ago)
Author:
fredck
Message:

Made FCKDomRange.CreateBookmark update the range position, considering the appended bookmark marker elements (related to #1279).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • FCKeditor/trunk/editor/_source/classes/fckdomrange.js

    r838 r862  
    253253        // handle DOM mutations when moving back to the bookmark. 
    254254        // Attention: the inclusion of nodes in the DOM is a design choice and 
    255         // should not be changes as there are other points in the code that may be 
     255        // should not be changed as there are other points in the code that may be 
    256256        // using those nodes to perform operations. See GetBookmarkNode. 
    257257        // For performance, includeNodes=true if intended to SelectBookmark. 
     
    266266 
    267267                var oDoc = this.Window.document ; 
    268                 var eSpan ; 
     268                var eStartSpan ; 
     269                var eEndSpan ; 
    269270                var oClone ; 
    270271 
     
    272273                if ( !this.CheckIsCollapsed() ) 
    273274                { 
    274                         eSpan = oDoc.createElement( 'span' ) ; 
    275                         eSpan.id = oBookmark.EndId ; 
    276                         eSpan.setAttribute( '_fck_bookmark', true ) ; 
     275                        eEndSpan = oDoc.createElement( 'span' ) ; 
     276                        eEndSpan.id = oBookmark.EndId ; 
     277                        eEndSpan.setAttribute( '_fck_bookmark', true ) ; 
    277278 
    278279                        // For IE, it must have something inside, otherwise it may be 
    279280                        // removed during DOM operations. 
    280281//                      if ( FCKBrowserInfo.IsIE ) 
    281                                 eSpan.innerHTML = ' ' ; 
     282                                eEndSpan.innerHTML = ' ' ; 
    282283 
    283284                        oClone = this.Clone() ; 
    284285                        oClone.Collapse( false ) ; 
    285                         oClone.InsertNode( eSpan ) ; 
    286  
    287                         if ( includeNodes ) 
    288                                 oBookmark.EndNode = eSpan ; 
    289                 } 
    290  
    291                 eSpan = oDoc.createElement( 'span' ) ; 
    292                 eSpan.id = oBookmark.StartId ; 
    293                 eSpan.setAttribute( '_fck_bookmark', true ) ; 
     286                        oClone.InsertNode( eEndSpan ) ; 
     287                } 
     288 
     289                eStartSpan = oDoc.createElement( 'span' ) ; 
     290                eStartSpan.id = oBookmark.StartId ; 
     291                eStartSpan.setAttribute( '_fck_bookmark', true ) ; 
    294292 
    295293                // For IE, it must have something inside, otherwise it may be removed 
    296294                // during DOM operations. 
    297295//              if ( FCKBrowserInfo.IsIE ) 
    298                         eSpan.innerHTML = ' ' ; 
     296                        eStartSpan.innerHTML = ' ' ; 
    299297 
    300298                oClone = this.Clone() ; 
    301299                oClone.Collapse( true ) ; 
    302                 oClone.InsertNode( eSpan ) ; 
     300                oClone.InsertNode( eStartSpan ) ; 
    303301 
    304302                if ( includeNodes ) 
    305                         oBookmark.StartNode = eSpan ; 
    306  
     303                { 
     304                        oBookmark.StartNode = eStartSpan ; 
     305                        oBookmark.EndNode = eEndSpan ; 
     306                } 
     307                 
     308                // Update the range position. 
     309                if ( eEndSpan ) 
     310                { 
     311                        this.SetStart( eStartSpan, 4 ) ; 
     312                        this.SetEnd( eEndSpan, 3 ) ; 
     313                } 
     314                else 
     315                        this.MoveToPosition( eStartSpan, 4 ) ; 
     316                 
    307317                return oBookmark ; 
    308318        }, 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy