我在火狐和Chrome上用了一个小的script,它只是改变了这个页面的颜色。在Firefox中,它工作得很好,但在Chrome中,我可以首先看到页面的原始颜色,几秒钟后页面就会发生变化。
这正常吗?(如何)我可以改变这一点吗?
发布于 2012-12-01 00:35:55
我不知道如何使用GM脚本来做这件事,但这里是如何将它作为一个chrome扩展来做的……
manifest.json
{
"name": "SO css",
"content_scripts": [
{
"matches": [
"http://*.stackoverflow.com/*"
],
"css": ["new.css"],
"run_at" : "document_start"
}
],
"version":"1.0",
"manifest_version" : 2
}new.css
#custom-header {background-color: rgb(251,122,35) !important}
#nav-questions {background-color: rgb(251,122,35) !important}
#nav-tags {background-color: rgb(251,122,35) !important}
#nav-users {background-color: rgb(251,122,35) !important}
#nav-badges {background-color: rgb(251,122,35) !important}
#nav-unanswered {background-color: rgb(251,122,35) !important}
#nav-askquestion {background-color: rgb(251,122,35) !important}有关内容脚本的信息....
http://developer.chrome.com/extensions/content_scripts.html
关于Chrome扩展的信息....
http://developer.chrome.com/extensions/getstarted.html
如果GM脚本有一个run_at等效项,那么它需要是document_start,因为它听起来像是在document_idle中注入了css,这将是在dom/page加载之后。你想要它在那之前,这样你就看不到它的变化。这就是为什么我在我的答案中将!important添加到每个css规则中,以确保它们不会被任何紧随其后的css更改。
编辑
查了一下,有一个run_at变量,这里和上面一样,只是作为一个GM脚本...
// ==UserScript==
// @name SO
// @namespace stackoverflow.com
// @include *stackoverflow.com/*
// @version 1
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
changeHeaderColor ();
function changeHeaderColor () {
GM_addStyle ( " \
/*body { color: white; background-color: black !important} \
*/ \
#custom-header {background-color: rgb(251,122,35) !important} \
\
#nav-questions {background-color: rgb(251,122,35) !important} \
#nav-tags {background-color: rgb(251,122,35) !important} \
#nav-users {background-color: rgb(251,122,35) !important} \
#nav-badges {background-color: rgb(251,122,35) !important} \
#nav-unanswered {background-color: rgb(251,122,35) !important} \
#nav-askquestion {background-color: rgb(251,122,35) !important} \
/*Blau: rgb(0,160,160) rgb(0,200,200) \
*/ \
" );
}https://stackoverflow.com/questions/13648855
复制相似问题