1

直接链接到脚本: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 时,都不会应用样式: 未应用样式

本质上,代码会查找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

任何人都可以验证这是一个Chrome、、Javascript还是Userscript问题?

4

1 回答 1

1

请参阅“将 github 存储库中的 .css 文件引用为 .html 文件中的样式表”。Git 为 CSS 文件 ( .../raw/master/clean.css) 提供了错误的 mime 类型;所以像 Chrome 和 Firefox 这样的浏览器不会(通常)处理/应用这样的 CSS。

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

var pathToNewStylesheet = "http://YOUR_SERVER.COM/YOUR_PATH/clean.css";
于 2013-05-02T10:38:53.213 回答