请教一下, Tampermonkey 我想屏蔽一个原素应该如何编写?

2018-12-11 11:58:14 +08:00
 ukipoi
<div data-test-id="post-content">
...
<div class="_3Oa0THmZ3f5iZXAQ0hBJ0k">
<a href="https://i.redd.it/xxx.jpg" target="_blank">
<img class="_2_tDEnGMLxpM6uOa2kaDB3 media-element"  src=""></a>
</div>
...
</div>

比如我想屏蔽这个 data-test-id 是 post-content 的这个 div。 或者这个 div 里具体的这个图片。应该怎么做呢?

3389 次点击
所在节点    JavaScript
7 条回复
ayase252
2018-12-11 13:02:38 +08:00
能拿到`document`都不是难事。。


```javascript
const postContent = document.querySelector('[data-test-id="post-content"]')
postContent.style.display = 'none'
```
kingsleydon
2018-12-11 13:10:00 +08:00
感觉如果只有这种需求用 Stylus 自定义 css 就好了?
ukipoi
2018-12-11 13:52:26 +08:00
@ayase252
非常感谢回复,我可以屏蔽掉内容了。
但是现在遇到一个问题,reddit 一个主题之后游览器显示的网址确实是变了,但是其实 Tampermonkey 并没有加载。
然后页面上应该是打开了一个窗口?(不是很懂这方面的东西。)我需要刷新页面他才会进入主题,这是 Tampermonkey 才会生效,请问这样这么解决呢
imn1
2018-12-11 14:25:07 +08:00
屏蔽有几种理解
1.整体不显示,这个 css 就行了,不必用 js
2.整体不加载,这个需要浏览器级 API
3.修改部分内容,这个才用 js

user 脚本多数是页面加载时加载运行,比较难处理网站 XHR 后加载的内容
cy97cool
2018-12-11 15:58:50 +08:00
@ukipoi 愚蠢一点你就搞个 setTimeout 每隔 1s 就看看 url 是不是变了 变了就执行你要的逻辑
愿意折腾就学一下 Mutation Obeserver
ansyx
2018-12-11 18:31:45 +08:00
选中元素,删除元素
lzvezr
2018-12-11 20:39:32 +08:00
用 css 就行了, 不需要 js
div[data-test-id="post-content"]
{
display: none !important;
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/516440

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX