0

这是代码

// ==UserScript==
// @name           Wood Background
// @namespace      http://www.nationstates.net/nation=ellorn
// @description    Changes background to wood finish
// @include       http:*//w11.zetaboards.com/Allied_Republics/*
// ==/UserScript==


function addCss(cssString) {
    var head = document.getElementsByTagName('head')[0];
    return unless head;
    var newCss = document.createElement('style');
    newCss.type = "text/css";
    newCss.innerHTML = cssString;
    head.appendChild(newCss);
}  
addCss (
    '* { background: #00ff00                          url('http://awesomewallpapers.files.wordpress.com/2010/01 /wooden_top.jpg') no-repeat 

fixed center;  }'
);

我正在尝试替换网站的背景:http: //awesomewallpapers.files.wordpress.com/2010/01/wooden_top.jpg

4

2 回答 2

2

对于样式更改,请使用Stylish 插件(几乎每个浏览器都可以使用该插件的一些变体)。

Stylish 比 Greasemonkey 或用户脚本更快、更轻、更容易。userstyles.org上有很多预制样式。

除此之外,请使用内置函数,例如GM_addStyle().

以下脚本适用于 Firefox 和 Chrome,可能还有其他一些浏览器。(CSS 字符串中有语法错误):

// ==UserScript==
// @name        Wood Background
// @namespace   http://www.nationstates.net/nation=ellorn
// @description Changes background to wood finish
// @include     http:*//w11.zetaboards.com/Allied_Republics/*
// ==/UserScript==

GM_addStyle (
    "* { background: #00ff00 "
    + "url('http://awesomewallpapers.files.wordpress.com/2010/01/wooden_top.jpg')"
    + " no-repeat fixed center; }"
);

请注意,最好将 替换*body

于 2012-07-18T11:46:55.547 回答
0

您可以定义自己的用户样式表来覆盖网站的作者样式表。我认为这比编写 javascript 更适合更改 CSS。

这是关于如何实现这一目标的简短介绍。

除此之外,如果您正确移交 CSS 字符串(固定引用和换行符),您的代码应该可以正常工作:

var css = "* { background: #00ff00 url('http://awesomewallpapers.files.wordpress.com/2010/01/wooden_top.jpg') no-repeat fixed center;  }";

addCss ( css );

但是请注意,这*会中断,因为您将木质背景应用于每个元素,而不仅仅是您的背景元素(HTML 或正文或包装器 div)。

于 2012-07-18T11:11:07.597 回答