指向脚本的直接链接: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
有人可以验证这是Chrome
,Javascript
还是Userscript
问题?
答案 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";