Chrome用户脚本未应用远程CSS样式表

时间:2013-05-02 08:31:16

标签: javascript css google-chrome github userscripts

指向脚本的直接链接:https://github.com/MosheBerman/MinimalOverflow/blob/master/styleswitcher.user.js

我从https://stackapps.com/questions/2143/minimaloverflow-a-themescript-for-stack-exchange下载了一个脚本,并将* .user.js文件拖放到Chrome中的扩展程序标签中。脚本运行,我使用alert验证了该脚本。我甚至alert编辑了脚本中的href属性,以验证它是否正确地更改了它。

但是,只要脚本更改了CSS,就不会应用样式: no styling applied http://i39.tinypic.com/23lo321.png

本质上,代码会查找link代码并更改href属性。

第64行

function switchToStylesheet(sheet){

    for(var i=0; i<linkElements.length; i++){   
        if(linkElements[i].getAttribute("rel") == "stylesheet"){

            //apply the new stylesheet
            linkElements[i].href = sheet;

            alert(linksElements[i].href); 
// shows https://github.com/MosheBerman/MinimalOverflow/raw/master/clean.css as expected

            //We only want to replace the first stylesheet, so return.
            //If SO decides to change any styles, just put it in a 
            //second stylesheet and link tag. The script should safely ignore it.
            return;
        }
    }
}

我有Version 25.0.1364.152 我正在运行Windows 7 64-bit

有人可以验证这是ChromeJavascript还是Userscript问题?

1 个答案:

答案 0 :(得分:1)

"Referencing a .css file in github repo as stylesheet in a .html file"。 Git使用错误的mime类型提供CSS文件(.../raw/master/clean.css);因此Chrome和Firefox等浏览器不会(通常)处理/应用此类CSS。

快速解决方法是在您自己的服务器或其中一个免费文件托管站点上托管该CSS文件。然后将脚本设置更改为:

var pathToNewStylesheet = "http://YOUR_SERVER.COM/YOUR_PATH/clean.css";