如何使用 Greasemonkey/Tampermonkey 脚本更改类 CSS
How to change a class CSS with a Greasemonkey/Tampermonkey script?
我正在尝试设置正文的背景图像,但仅限于它使用类banner_url
的地方。 该网页如下所示:
<body id="app_body" class="banner_url desktopapp" data-backdrop-limit="1">
基本上,我想强制页面使用以下CSS:
.banner_url {
background: url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
我正在尝试使用 Greasemonkey 来做到这一点,如果它有任何区别的话。 有谁知道我该怎么做? 我从以下内容开始,但运气不佳:
function randomBG(){
document.getElementsByClassName("banner_url").style.backgroundImage="url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg')no-repeat center center fixed;";
}
randomBG();
为此,只需使用 CSS 级联。 将样式表添加到带有 GM_addStyle()
的页面。
注意:
- 我们使用
!important
标志来涵盖某些潜在的冲突。 - 使用
@run-at document-start
(或使用触笔,见下文)来最大程度地减少与初始渲染后更改样式相关的"闪烁"。
完整的脚本:
// ==UserScript==
// @name _Override banner_url styles
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
GM_addStyle ( `
.banner_url {
background: url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg') no-repeat center center fixed !important;
-webkit-background-size: cover !important;
-moz-background-size: cover !important;
-o-background-size: cover !important;
background-size: cover !important;
}
` );
请注意,如果您使用的是 Greasemonkey 4,它已经破坏了GM_addStyle()
(以及许多其他东西)。
强烈建议您切换到Tampermonkey或Violentmonkey。
事实上,Greasemonkey的控制开发人员自己也这么说。
与此同时,对于那些坚持使用 GM4 的受虐狂来说,这里有一个垫片:
function GM_addStyle (cssStr) {
var D = document;
var newNode = D.createElement ('style');
newNode.textContent = cssStr;
var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
targ.appendChild (newNode);
}
此外,对于纯粹的CSS操作,Style Stylus扩展是比Greasemonkey/Tampermonkey更好的选择。
这样的事情呢?
document.getElementsByClassName("banner_url")[0] .style.backgroundImage="url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg')";
但我必须承认我不确定是否理解这个问题
相关文章:
- Yii2从js脚本的页面上添加来自供应商文件夹的图像、css、js文件
- 如何使用java脚本或jQuery基于相同的特定css属性对元素进行分组
- MVC3站点脚本和CSS未加载
- Chrome审核:在外部CSS文件之间的头中发现了1个内联脚本块&”;
- "npm运行构建:css"不能工作,而当我自己运行脚本时是可以的
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 正文中的 CSS 样式表和脚本.可能
- 如何在拥有 Ajax 和 CSS 时包含 Java 脚本
- 获取脚本中CSS颜色属性的实际值
- HTML文件脚本和CSS放置
- 脚本点击Css显示属性更改不正常运行Asp.net
- CSS,Java脚本在php中调用ajax后无法正常工作
- 多个脚本导致链接问题?Javascript、CSS、HTML、Jquery
- 如何使用内容脚本将另一个html连同css文件一起注入到html中
- 意外的脚本/css冲突,如何解决
- 如何在Chrome扩展中使用内容脚本文件注入CSS
- Meteor加载特定于页面的CSS脚本
- 包括js/css脚本在闪亮的应用程序
- 要加载的 js 和 css 脚本的文件大小
- 是否可以创建javascript和css脚本的头文件