Ticket #4463: 4463.patch

File 4463.patch, 2.1 KB (added by garry.yao, 6 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 – 2015 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy