从manifest.json中的content_脚本中排除域不会';不适用于CSS文件?
我想写一个chrome扩展,强制所有网站使用给定的CSS样式,Gmail页面除外。但是从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
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;
}