Ticket #3549: 3549_4.patch

File 3549_4.patch, 2.4 KB (added by Tobiasz Cudnik, 10 years ago)
  • _source/core/dom/element.js

     
    151151                 */
    152152                removeClass : function( className )
    153153                {
    154                         var c = this.$.className;
     154                        var c = this.getAttribute( 'class' );
    155155                        if ( c )
    156156                        {
    157                                 var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', '' );
     157                                var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', 'i' );
    158158                                if ( regex.test( c ) )
    159159                                {
    160160                                        c = c.replace( regex, '' ).replace( /^\s+/, '' );
    161161
    162162                                        if ( c )
    163                                                 this.$.className = c;
     163                                                this.setAttribute( 'class', c );
    164164                                        else
    165165                                                this.removeAttribute( 'class' );
    166166                                }
     
    170170                hasClass : function( className )
    171171                {
    172172                        var regex = new RegExp( '(?:^|\\s+)' + className + '(?=\\s|$)', '' );
    173                         return regex.test( this.$.className );
     173                        return regex.test( this.getAttribute('class') );
    174174                },
    175175
    176176                /**
     
    400400                                return this.$.getAttribute( name, 2 );
    401401                        };
    402402
    403                         if ( CKEDITOR.env.ie && !CKEDITOR.env.ie8 )
     403                        if ( CKEDITOR.env.ie )
    404404                        {
    405405                                return function( name )
    406406                                {
     
    436436                                                                        /([^;])$/, '$1;');
    437437                                        }
    438438
    439                                         return standard.call( this, name );
     439                                        return typeof this.$[ name ] == 'undefined'
     440                                                ? standard.call( this, name ) : this.$[ name ];         
    440441                                };
    441442                        }
    442443                        else
     
    767768                                                                // outerHTML of the element is not displaying the class attribute.
    768769                                                                // Note : I was not able to reproduce it outside the editor,
    769770                                                                // but I've faced it while working on the TC of #1391.
    770                                                                 if ( this.$.className.length > 0 )
     771                                                                if ( this.getAttribute( 'class' ) > 0 )
    771772                                                                        return true;
    772773
    773774                                                        // Attributes to be ignored.
     
    870871                                return this;
    871872                        };
    872873
    873                         if ( CKEDITOR.env.ie && !CKEDITOR.env.ie8 )
     874                        if ( CKEDITOR.env.ie )
    874875                        {
    875876                                return function( name, value )
    876877                                {
     
    936937                                this.$.removeAttribute( name );
    937938                        };
    938939
    939                         if ( CKEDITOR.env.ie && !CKEDITOR.env.ie8  )
     940                        if ( CKEDITOR.env.ie )
    940941                        {
    941942                                return function( name )
    942943                                {
    943944                                        if ( name == 'class' )
     945                                        {
     946                                                this.className = undefined;
     947                                                standard.call( this, 'class' );
    944948                                                name = 'className';
     949                                        }
    945950                                        else if ( name == 'tabindex' )
    946951                                                name = 'tabIndex';
    947952                                        standard.call( this, name );
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy