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

标签 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

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

我有 版本 25.0.1364.152 我正在运行 Windows 7 64 位

谁能验证这是 ChromeJavascript 还是 Userscript 问题?

最佳答案

参见 "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";

关于javascript - Chrome 用户脚本未应用远程 CSS 样式表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16333559/

相关文章:

javascript - 除了函数本身之外,不能在 jQuery 的 .ajax 方法中使用返回的数据

javascript - Node.js 中的 sqlite3 不从 INSERT 回调返回 lastID

javascript - jQuery div 旋转器

css - 与用户代理样式表 css 作斗争

html - (软连字符)以及 Chrome 和 Safari

javascript - jquery解开多个递归节点

javascript - 消息后关闭对话框

jquery - 网页设计 - CSS 粘性页脚与 JQUERY 内容重叠

css - Mozilla 在报告的第二页打印表格

html - 在 Chrome 书签上获取链接文本或标题