Ticket #3403: 3403_3.patch

File 3403_3.patch, 3.7 KB (added by Martin Kou, 10 years ago)
  • _source/plugins/forms/dialogs/textfield.js

     
    1111                maxLength : 1
    1212        };
    1313
    14         var ieDefaults =
    15         {
    16                 size : 20,
    17                 maxLength : 0x7fffffff
    18         };
    19 
    2014        var acceptedTypes =
    2115        {
    2216                text : 1,
     
    5852                {
    5953                        var autoSetup = function( element )
    6054                        {
    61                                 var value = element.getAttribute( this.id );
    62                                 if ( CKEDITOR.env.ie && ( this.id in ieDefaults ) && ieDefaults[ this.id ] == value )
    63                                         this.setValue( '' );
    64                                 else
    65                                         this.setValue( element.getAttribute( this.id ) || '' );
     55                                var value = element.hasAttribute( this.id ) && element.getAttribute( this.id );
     56                                this.setValue( value || '' );
    6657                        };
    6758
    6859                        var autoCommit = function( data )
  • _source/plugins/forms/dialogs/textarea.js

     
    7070                                                validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
    7171                                                setup : function( element )
    7272                                                {
    73                                                         var ieDefault = 20;
    74                                                         var value = element.getAttribute( 'cols' );
    75                                                         this.setValue( ( CKEDITOR.env.ie && ( value == ieDefault ) ? '' : value ) || '' );
     73                                                        var value = element.hasAttribute( 'cols' ) && element.getAttribute( 'cols' );
     74                                                        this.setValue( value || '' );
    7675                                                },
    7776                                                commit : function( element )
    7877                                                {
     
    9291                                                validate : CKEDITOR.dialog.validate.integer( editor.lang.common.validateNumberFailed ),
    9392                                                setup : function( element )
    9493                                                {
    95                                                         var ieDefault = 2;
    96                                                         var value = element.getAttribute( 'rows' );
    97                                                         this.setValue( ( CKEDITOR.env.ie && ( value == ieDefault ) ? '' : value ) || '' );
     94                                                        var value = element.hasAttribute( 'rows' ) && element.getAttribute( 'rows' );
     95                                                        this.setValue( value || '' );
    9896                                                },
    9997                                                commit : function( element )
    10098                                                {
  • _source/plugins/forms/plugin.js

     
    164164        },
    165165        requires : [ 'image' ]
    166166} );
     167
     168if ( CKEDITOR.env.ie )
     169{
     170        CKEDITOR.dom.element.prototype.hasAttribute = function( name )
     171        {
     172                var $attr = this.$.attributes.getNamedItem( name );
     173
     174                if ( this.getName() == 'input' )
     175                {
     176                        switch ( name )
     177                        {
     178                                case 'class' :
     179                                        return this.$.className.length > 0;
     180                                case 'checked' :
     181                                        return !!this.$.checked;
     182                                case 'value' :
     183                                        var type = this.getAttribute( 'type' );
     184                                        if ( type == 'checkbox' || type == 'radio' )
     185                                                return this.$.value != 'on';
     186                                        break;
     187                                default:
     188                        }
     189                }
     190
     191                return !!( $attr && $attr.specified );
     192        };
     193}
  • _source/core/dom/element.js

     
    804804                                },
    805805
    806806                /**
     807                 * Indicates whether a specified attribute is defined for this element.
     808                 * @returns {Boolean} True if the specified attribute is defined.
     809                 * @param (String) name The attribute name.
     810                 * @example
     811                 */
     812                hasAttribute : function( name )
     813                {
     814                        var $attr = this.$.attributes.getNamedItem( name );
     815                        return !!( $attr && $attr.specified );
     816                },
     817
     818                /**
    807819                 * Hides this element (display:none).
    808820                 * @example
    809821                 * var element = CKEDITOR.dom.element.getById( 'myElement' );
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy