Ticket #4463: 4463.patch

File 4463.patch, 2.1 KB (added by garry.yao, 4 years ago)
  • _source/core/skins.js

     
    3333                        } 
    3434                }; 
    3535 
     36                function fixCSSTextRelativePath( cssStyleText, baseUrl ) 
     37                { 
     38                        return cssStyleText.replace( /url\s*\(([\s'"]*)(.*?)([\s"']*)\)/g, 
     39                                        function( match, opener, path, closer ) 
     40                                        { 
     41                                                if ( /^\/|^\w?:/.test( path ) ) 
     42                                                        return match; 
     43                                                else 
     44                                                        return 'url(' + baseUrl + opener +  path + closer + ')'; 
     45                                        } ); 
     46                } 
     47 
    3648                // Check if we need to preload images from it. 
    3749                if ( !preloaded[ skinName ] ) 
    3850                { 
     
    96108                        // Load the "css" pieces. 
    97109                        if ( !cssIsLoaded ) 
    98110                        { 
    99                                 appendSkinPath( part.css ); 
     111                                var cssPart = part.css; 
    100112 
    101                                 for ( var c = 0 ; c < part.css.length ; c++ ) 
    102                                         CKEDITOR.document.appendStyleSheet( part.css[ c ] ); 
     113                                if ( CKEDITOR.tools.isArray( cssPart ) ) 
     114                                { 
     115                                        appendSkinPath( cssPart ); 
     116                                        for ( var c = 0 ; c < cssPart.length ; c++ ) 
     117                                                CKEDITOR.document.appendStyleSheet( cssPart[ c ] ); 
     118                                } 
     119                                else 
     120                                { 
     121                                        // Processing Inline CSS part. 
     122                                        CKEDITOR.document.appendStyleText( 
     123                                                fixCSSTextRelativePath( cssPart, 
     124                                                        CKEDITOR.getUrl( paths[ skinName ] ) ) ); 
     125                                } 
    103126 
    104127                                cssIsLoaded = 1; 
    105128                        } 
  • _source/core/dom/document.js

     
    5252                        } 
    5353                }, 
    5454 
     55                appendStyleText : function( cssStyleText ) 
     56                { 
     57                        if ( this.$.createStyleSheet ) 
     58                        { 
     59                                var styleSheet = this.$.createStyleSheet( "" ); 
     60                                styleSheet.cssText = cssStyleText ; 
     61                        } 
     62                        else 
     63                        { 
     64                                var style = new CKEDITOR.dom.element( 'style', this ); 
     65                                style.append( new CKEDITOR.dom.text( cssStyleText, this ) ); 
     66                                this.getHead().append( style ); 
     67                        } 
     68                }, 
     69 
    5570                createElement : function( name, attribsAndStyles ) 
    5671                { 
    5772                        var element = new CKEDITOR.dom.element( name, this ); 
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy