从manifest.json中的content_脚本中排除域不会';不适用于CSS文件?

从manifest.json中的content_脚本中排除域不会';不适用于CSS文件?,css,json,google-chrome,google-chrome-extension,google-chrome-devtools,Css,Json,Google Chrome,Google Chrome Extension,Google Chrome Devtools,我想写一个chrome扩展,强制所有网站使用给定的CSS样式,Gmail页面除外。但是manifest.json中内容脚本中的以下代码不起作用(Gmail页面仍将使用font.css中给出的样式) 即使采用建议的策略,用exclude_globs替换exclude_匹配项,也无法解决此问题 我知道这个bug存在了一段时间,所谓的。你知道怎么解决这个问题吗?或者,我可以使用其他方法来实现我的目标吗?如果从某些内容JavaScript代码中插入CSS,则可以手动筛选页面。我刚刚做了一个快速测试,在C

我想写一个chrome扩展,强制所有网站使用给定的CSS样式,Gmail页面除外。但是
manifest.json
中内容脚本中的以下代码不起作用(Gmail页面仍将使用
font.css
中给出的样式)

即使采用建议的策略,用exclude_globs替换exclude_匹配项,也无法解决此问题


我知道这个bug存在了一段时间,所谓的。你知道怎么解决这个问题吗?或者,我可以使用其他方法来实现我的目标吗?

如果从某些内容JavaScript代码中插入CSS,则可以手动筛选页面。我刚刚做了一个快速测试,在Chrome 31.0.1650.63中,以下功能有效:

manifest.json:

{
    "manifest_version": 2,
    "name": "My Style",
    "description": "Insert custom CSS",
    "version": "0.1",
    "content_scripts": [{
        "matches":  ["http://*/*", "https://*/*"],
        "js": ["font.js"],
        "run_at":"document_start"
    }],
    "web_accessible_resources": ["font.css"]
}
font.js

if (location.hostname.indexOf(".google.com") == -1) {
    var link = document.createElement("link");
    link.href = chrome.extension.getURL("font.css");
    link.type = "text/css";
    link.rel = "stylesheet";
    document.documentElement.insertBefore(link);
}
字体.css

body {
    color: red;
}

通过这种方式,font.css脚本被注入所有非谷歌页面。

我尝试了你的方法。但是,所有网站现在都没有效果。问题可能是什么?我已经通过附加完整的源代码编辑了我的答案,这些代码是有效的(在Google Chrome 31.0.1650.63中测试)。请检查控制台中是否有错误:)谢谢,成功了。这种方法的一个问题是,当加载一个网页时,我们仍然可以看到原始样式(前半秒),然后切换到CSS样式。你知道如何让它刷新得更快吗?更详细地说,与以前的方法(没有
js
)相比,使用
js
,正如你所回答的,1)需要刷新预打开的网页,2)需要更长的响应时间(正如我上面所说的,我们仍然可以看到原始样式(前半秒),然后切换到CSS样式)。你有什么想法可以让它更好吗?请看我上次的编辑,这个版本的JS是较早注入的,因此允许较早注入CSS。
body {
    color: red;
}