Changeset 7018


Ignore:
Timestamp:
06/08/11 08:25:51 (4 years ago)
Author:
garry.yao
Message:

#7984: Auto grow works better when content doc is in quirks mode.

Location:
CKEditor/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r7015 r7018  
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    22<!-- 
    33Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. 
     
    9696                <li><a href="http://dev.ckeditor.com/ticket/7915">#7915</a> : [IE] Editing iframe height value missing from the Iframe dialog.</li> 
    9797                <li><a href="http://dev.ckeditor.com/ticket/7953">#7953</a> : [IE] Text selection lost after open native context menu.</li> 
     98                <li><a href="http://dev.ckeditor.com/ticket/7984">#7984</a> : The autogrow plugin breaks in quirks mode content document.</li> 
    9899                <li>Updated the following language files:<ul> 
    99100                        <li><a href="http://dev.ckeditor.com/ticket/7834">#7834</a> : Dutch;</li> 
  • CKEditor/trunk/_source/plugins/autogrow/plugin.js

    r6921 r7018  
    1313                init : function( editor ) 
    1414                { 
    15                         var lastContentHeight; 
     15                        var contentMargin = 0; 
    1616                        var resizeEditor = function( editor ) 
    1717                        { 
     
    2626                                        newHeight; 
    2727 
    28                                 var delta = 
    29                                                 // Delta height by checking scrollHeight. 
    30                                                 ( CKEDITOR.env.ie && CKEDITOR.env.quirks ? body.scrollHeight - body.clientHeight 
    31                                                                 : htmlElement.scrollHeight - ( htmlElement.clientHeight || htmlElement.offsetHeight ) ) 
    32                                                 // Negative scrollHeight (content reduced) is not supported in some browsers, figure it out by watching over the content size. 
    33                                                 || ( body.clientHeight < lastContentHeight ? body.clientHeight - lastContentHeight : 0 ); 
     28                                // Quirks mode overflows body, standards oveflows document element. 
     29                                var delta, 
     30                                        scrollable = doc.$.compatMode == 'BackCompat' ? body : htmlElement, 
     31                                        increase = scrollable.scrollHeight - scrollable.clientHeight, 
     32                                        decrease = body.offsetHeight - scrollable.scrollHeight + contentMargin; 
    3433 
    35                                 if ( delta ) 
     34                                // Delta height from either increasing or decreasing. 
     35                                if ( delta  =  increase ||decrease || 0 ) 
    3636                                { 
    3737                                        newHeight = currentHeight + delta; 
     
    5050                                                resizeable.setStyle( 'height', newHeight + 'px' ); 
    5151                                                editor.fire( 'resize' ); 
     52                                                // Calculate and record now the margin between the actual content size and page size. 
     53                                                setTimeout( function() { contentMargin = scrollable.scrollHeight - body.offsetHeight; }, 0 ); 
     54 
    5255                                        } 
    5356                                } 
    54  
    55                                 lastContentHeight = body.clientHeight; 
    5657                        }; 
    5758 
     
    6869                                                setTimeout( function(){ resizeEditor( evt.editor ); }, 100 ); 
    6970                                        } 
    70                                 }); 
    71                         } 
     71                        }); 
     72                } 
    7273                } 
    7374        }); 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy