Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用GreaseMonkey脚本重写(css)元类属性?_Javascript_Css_Greasemonkey_Reddit_Tampermonkey - Fatal编程技术网

Javascript 如何使用GreaseMonkey脚本重写(css)元类属性?

Javascript 如何使用GreaseMonkey脚本重写(css)元类属性?,javascript,css,greasemonkey,reddit,tampermonkey,Javascript,Css,Greasemonkey,Reddit,Tampermonkey,我的目标是制作一个脚本,它将从/r/avatar中删除扰流板样式 通过玩弄Firefox的“inspect element”元素特性,我成功地在其中一个CSS页面中找到了代码,使被破坏的标题透明化。看起来像这样 html:not([lang="ns"]) .thing.over18 a.title{ opacity:0.0 } 我一直在寻找一种方法来覆盖greasemonkey中的这个属性,但我不知道如何覆盖。我是javascript新手:我一直在尝试利用 document.getElemen

我的目标是制作一个脚本,它将从/r/avatar中删除扰流板样式

通过玩弄Firefox的“inspect element”元素特性,我成功地在其中一个CSS页面中找到了代码,使被破坏的标题透明化。看起来像这样

html:not([lang="ns"]) .thing.over18 a.title{
opacity:0.0
}
我一直在寻找一种方法来覆盖greasemonkey中的这个属性,但我不知道如何覆盖。我是javascript新手:我一直在尝试利用

document.getElementsByClassName('.thing.over18')
尝试获取附加了(meta?)类的元素,但无论我如何使用类名,我都无法让它选择正确的元素(我有一种迹象表明我现在没有使用正确的函数)


实际上,userscripts.org上有一个脚本做了类似的事情(unspoiler/r/pokemon),但似乎userscripts已经关闭了,所以我无法查看它的源代码。

CSS或HTML中没有“元类”这样的东西
.thing
是一个类选择器
.over18
是另一个类选择器。您只有两个类选择器

getElementsByClassName
只接受单个类名

document.getElementsByClassName('thing')
document.getElementsByClassName('over18')
如果要使用选择器,请使用
querySelector
(对于单个元素)或
queryselectoral
(对于节点列表)


要应用自定义样式,最好使用以下内容。但是,设置
.thing.over18
的样式不会产生效果,因为该样式已设置为
a.title
如何从greasemonkey覆盖此样式?我唯一能想到的是
a.css(“不透明”,“1”)
,但是把它放在脚本中不起作用,哎呀,我已经让我的python在我的web上跑掉了。事实上,我并不知道“thing”和“over18”是两个不同的东西(可能是因为它们之间没有空格)。仅使用“over18”就可以让我抓住正确的元素。现在要正确地设计它们……还有一个问题:我设法抓住了正确的元素(数量)元素。将它们记录到控制台会提供类似于
的内容。它们似乎没有上面样式表中设置的
不透明度
属性。知道为什么会这样吗?
不透明度
是CSS属性,而不是HTML属性。事后我发现了这一点;实际上,我已经成功地剥离了超过18个f类从拥有它的元素中,我说“一些”"因为它看起来非常不一致。成功地在上清除了一些帖子,但似乎没有触及其他帖子。在相关页面上运行脚本会给我带来一些帮助。你能试试脚本,让我了解出了什么问题吗?@pipsqueaker117:你可能使用的是现代浏览器,所以你可能可以依赖
文档.querySelectorAll
节点.classList
。尝试:
[].slice.call(document.querySelectorAll(.over18”)).forEach(函数(el){el.classList.remove(“over18”);};
document.querySelectorAll(".thing.over18");