Ticket #3978: 3978.patch

File 3978.patch, 2.7 KB (added by Tobiasz Cudnik, 13 years ago)
  • _source/core/tools.js

     
    197197                 * alert( CKEDITOR.tools.cssStyleToDomStyle( 'background-color' ) );  // "backgroundColor"
    198198                 * alert( CKEDITOR.tools.cssStyleToDomStyle( 'float' ) );             // "cssFloat"
    199199                 */
    200                 cssStyleToDomStyle : function( cssName )
     200                cssStyleToDomStyle : ( function()
    201201                {
    202                         if ( cssName == 'float' )
    203                                 return 'cssFloat';
    204                         else
    205                         {
    206                                 return cssName.replace( /-./g, function( match )
    207                                         {
    208                                                 return match.substr( 1 ).toUpperCase();
    209                                         });
    210                         }
    211                 },
     202                        var test = document.createElement( 'div' ).style;
     203
     204                        var cssFloat = ( typeof test.cssFloat != 'undefined' ) ? 'cssFloat'
     205                                : ( typeof test.styleFloat != 'undefined' ) ? 'styleFloat'
     206                                : 'float';
     207                       
     208                        return function( cssName )
     209                        {
     210                                if ( cssName == 'float' )
     211                                        return cssFloat;
     212                                else
     213                                {
     214                                        return cssName.replace( /-./g, function( match )
     215                                                {
     216                                                        return match.substr( 1 ).toUpperCase();
     217                                                });
     218                                }
     219                        };
     220                } )(),
    212221
    213222                /**
    214223                 * Replace special HTML characters in a string with their relative HTML
  • _source/tests/core/dom/element.html

     
    219219                        var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
    220220                        element.setStyle( 'float', 'right' );
    221221
    222                         assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
     222                        var key = CKEDITOR.tools.cssStyleToDomStyle( 'float' );
     223                        assert.areEqual( 'right', document.getElementById( 'setStyle' ).style[ key ] );
    223224                },
    224225
     226                test_setStyle3 : function()
     227                {
     228                        var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
     229                        element.removeAttribute( 'style' );
     230                        element.setStyle( 'float', 'right' );
     231
     232                        assert.areEqual( 'float:right', element.getAttribute( 'style' ).replace( ' ', '' ).replace( ';', '' ).toLowerCase() );
     233                },
     234
    225235                test_setStyles : function()
    226236                {
    227237                        var element = new CKEDITOR.dom.element( document.getElementById( 'setStyle' ) );
     
    230240                                        'float' : 'right'
    231241                                });
    232242
     243                        var key = CKEDITOR.tools.cssStyleToDomStyle( 'float' );
    233244                        assert.areEqual( 'absolute', document.getElementById( 'setStyle' ).style.position );
    234                         assert.areEqual( 'right', document.getElementById( 'setStyle' ).style.cssFloat );
     245                        assert.areEqual( 'right', document.getElementById( 'setStyle' ).style[ key ] );
    235246                },
    236247
    237248                test_setText1 : function()
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy