编写替换背景图像的用户脚本

Writing a userscript that replaces a background image

本文关键字:用户 脚本 图像 背景 替换      更新时间:2023-11-29

这是代码

// ==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

只需更改样式,就可以使用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

您可以定义自己的用户样式表来覆盖网站的作者样式表。我认为这比编写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或body或包装器div)。