selectivizr icon indicating copy to clipboard operation
selectivizr copied to clipboard

Sass output breaking loadStyleSheet()

Open CHEWX opened this issue 9 years ago • 3 comments

I kept getting an error with IE8 on line 383:

    function loadStyleSheet( url ) {
        xhr.open("GET", url, false);
        xhr.send();
        return (xhr.status==200) ? xhr.responseText : EMPTY_STRING;
    };

This is because my Sass was being outputted as compressed, it needs to be compact.

I think this should be on the docs, took a long while to figure out.

The best way would be to output 2 stylesheets. One as compressed 'main.css' and one 'main-ie.css' as compact and conditionally load them.

CHEWX avatar Feb 24 '15 11:02 CHEWX

Having two versions of css just because of that error doesn't sound good, to be honest...

Duplicate of https://github.com/keithclark/selectivizr/issues/66

ArmorDarks avatar May 30 '15 07:05 ArmorDarks

I encountered this problem too, but later I figured out that Selectivizr has some issues dealing with @import rule and urls. After I change lines 447-455

return loadStyleSheet(url).replace(RE_COMMENT, EMPTY_STRING).
            replace(RE_IMPORT, function( match, quoteChar, importUrl, quoteChar2, importUrl2, media ) {
                var cssText = parseStyleSheet(resolveUrl(importUrl || importUrl2, url));
                return (media) ? "@media " + media + " {" + cssText + "}" : cssText;
            }).
            replace(RE_ASSET_URL, function( match, isBehavior, quoteChar, assetUrl ) { 
                quoteChar = quoteChar || EMPTY_STRING;
                return isBehavior ? match : " url(" + quoteChar + resolveUrl(assetUrl, url, true) + quoteChar + ") "; 
});

to

return loadStyleSheet(url).replace(RE_COMMENT, EMPTY_STRING);

This was fixed. Though I don't know the purpose of these two **replace()**s.

ganlanyuan avatar Jul 29 '16 23:07 ganlanyuan

Sorry, jesstelford actually fixed this issue. Check https://github.com/keithclark/selectivizr/pull/69.

ganlanyuan avatar Jul 29 '16 23:07 ganlanyuan