Ticket #3529: 3529_3.patch

File 3529_3.patch, 2.8 KB (added by Garry Yao, 16 years ago)
  • core/dom/text.js

     
    9494
    9595                        // IE BUG: IE8 does not update the childNodes array in DOM after splitText(),
    9696                        // we need to make some DOM changes to make it update. (#3436)
    97                         if ( CKEDITOR.env.ie && CKEDITOR.env.version >= 8 )
     97                        if ( CKEDITOR.env.ie8 )
    9898                        {
    9999                                var workaround = new CKEDITOR.dom.text( '', doc );
    100100                                workaround.insertAfter( retval );
  • core/env.js

     
    9696                        version = parseFloat( agent.match( /msie (\d+)/ )[1] );
    9797
    9898                        /**
     99                         *  Indicate IE8 browser.
     100                         */
     101                        env.ie8 = !!document.documentMode;
     102
     103                        /**
     104                         * Indicte IE8 document mode.
     105                         */
     106                        env.ie8Compat = document.documentMode == 8;
     107
     108                        /**
     109                         * Indicates that CKEditor is running on an IE7-like environment, which
     110                         * includes IE7 itself and IE8's IE7 document mode.
     111                         * @type Boolean
     112                         */
     113                        env.ie7Compat = ( ( version == 7 && !document.documentMode )
     114                                        || document.documentMode == 7 );
     115
     116                        /**
    99117                         * Indicates that CKEditor is running on an IE6-like environment, which
    100118                         * includes IE6 itself and IE7 and IE8 quirks mode.
    101119                         * @type Boolean
     
    105123                         */
    106124                        env.ie6Compat = ( version < 7 || env.quirks );
    107125
    108                         /**
    109                          *  Indicate IE8.
    110                          */
    111                         env.ie8 = (version >= 8);
    112126                }
    113127
    114128                // Gecko.
  • tests/core/dom/text.html

     
    1010        <script type="text/javascript">
    1111        //<![CDATA[
    1212
    13 CKEDITOR.test.addTestCase( (function()
     13var tc;
     14CKEDITOR.test.addTestCase( tc = (function()
    1415{
    1516        // Local reference to the "assert" object.
    1617        var assert = CKEDITOR.test.assert;
    1718
    1819        return {
     20
    1921                test_substring1 : function()
    2022                {
    2123                        var text = new CKEDITOR.dom.text( '0123456789' );
     
    103105                        assert.areSame( text.$, next.$.previousSibling, 'sibling is wrong' );
    104106                },
    105107
     108                test_split_3436 : function()
     109                {
     110                        var parent = CKEDITOR.document.getById( 'playground2' );
     111                        parent.setHtml( 'A B <b>C </b>D E' );
     112                        parent.getFirst().split( 2 );   // Right before "B"
     113                        parent.getChildren().getItem( 3 ).split( 2 );   // Right before "E"
     114                        assert.areSame( 5, parent.getChildren().count(), 'Child nodes num doesn\'t match after split' );
     115                },
     116
    106117                name : document.title
    107118        };
    108119})() );
    109120
     121//window.onload = tc.test_split_3436;
     122
    110123        //]]>
    111124        </script>
    112125</head>
    113126<body>
    114         <div id="playground"></p>
     127        <p id="playground"></p>
     128        <p id="playground2"></p>
    115129</body>
    116130</html>
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy