上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

[油猴脚本开发指南]去除网页广告以及判断去除元素

[复制链接]

163

主题

1157

帖子

638

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
638
发表于 2021-6-24 21:29:07 | 显示全部楼层 | 阅读模式

简介

本节课我们学习去除百度首页的广告,并且消除掉一些元素。

简易去除广告

首先我们找到下面的广告id是s_main

图片.png

书写代码

GM_addStyle('#s_main{display:none !important}')

但是这个时候发现还存在滚轴,这个时候通常是因为有某些元素设置了最小高度导致的

我们可以直接选择元素点击一下,找到了

图片.png

将其设置为auto即为默认

GM_addStyle('#head{min-height:auto !important}')

我们接下来查看代码,发现虽然滚轴变成灰色的了,但是依然存在

图片.png

这个时候可以排查是否一些上层元素存在scroll等css属性存在,经过排查,在html上找到了overflow-y,这个需要改为hidden才可以隐藏,具体某个值可以直接双击页面上的css属性进行更改。

图片.png

接下来我们就得到了一个相对干净的百度,这个输入框有点太靠上了,可以挪下去一点

图片.png

我们通过元素选择找到了

图片.png

修改height或者min-height都是可以的

再找到图标,将图标与按钮稍稍分离一点

图片.png

这个时候我们可以使用margin-bottom属性进行分割

书写代码

GM_addStyle('#lg{margin-bottom: 40px; !important}')

图片.png

我们就得到了一个相对干净的百度了,接下来对左上角的元素进行清理

图片.png

我们查看元素可能发现class都是一致的,这个时候我们可以使用querySelectorAll获取全部的元素,然后循环元素数组,通过innerHTML判断我们想要删除那个(注意,返回的并非一个数组,而是一个节点列表,虽然与数组相似,但是不要对其进行删除等操作!)

document.querySelectorAll('.mnav')

然后使用for进行循环 图片.png //执行流程: 首先运行第一个参数内语句,然后进入循环流程

对第二个参数进行判断,如果为真则执行{}内语句,执行结束后运行第三个参数内语句,并在此运行第二个参数语句进行判断是否进入执行流程,以此反复 我们可以书写代码

图片.png

并且查看输出

图片.png

我个人比较喜欢贴吧和地图,所以对其他进行删除,可以对元素使用remove来删除元素

图片.png

接下来我们就得到了一个干净的百度

脚本地址https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=689

图片.png

混的人。

84

主题

864

帖子

690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
690

猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章

发表于 2021-6-24 22:43:42 | 显示全部楼层
ad工具也可以
上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
回复

使用道具 举报

11

主题

184

帖子

93

积分

版主

Rank: 7Rank: 7Rank: 7

积分
93

猫咪币纪念章活跃会员中秋纪念章国庆纪念章

发表于 2021-6-25 11:42:54 | 显示全部楼层
研究研究
回复

使用道具 举报

3

主题

46

帖子

93

积分

注册会员

Rank: 2

积分
93

猫咪币纪念章

发表于 2021-8-26 08:50:37 | 显示全部楼层
哈尔滨
太远了py不到
回复

使用道具 举报

163

主题

1157

帖子

638

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
638
发表于 2021-8-26 09:08:15 | 显示全部楼层
涛之雨 发表于 2021-8-26 08:50
哈尔滨
太远了py不到

疏忽了,忘了有地区
不过我可以去py哥哥

我觉得哥哥比我强很多的!
混的人。
回复

使用道具 举报

3

主题

46

帖子

93

积分

注册会员

Rank: 2

积分
93

猫咪币纪念章

发表于 2021-8-26 21:25:28 | 显示全部楼层
本帖最后由 涛之雨 于 2021-8-26 21:26 编辑
李恒道 发表于 2021-8-26 09:08
疏忽了,忘了有地区
不过我可以去py哥哥



好多东西不会的。。。
现在在研究把自己代码扔到shadowroot,
不会和外界代码互相影响

主要vue(及其各种框架)css样式的注入效果简直太强了。。。
注入的网页全局样式遭殃。。。
iframe又不方便(而且iframe也做不出来一个半透明遮罩的效果)
所以只能考虑怎么把它扔到shadowroot里了

vue的植入简直是噩梦
(不管是油猴脚本还是chrome插件的content_script)
回复

使用道具 举报

163

主题

1157

帖子

638

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
638
发表于 2021-8-26 22:24:08 | 显示全部楼层
涛之雨 发表于 2021-8-26 21:25
好多东西不会的。。。
现在在研究把自己代码扔到shadowroot,
不会和外界代码互相影响

哥哥研究出来成果能论坛发一份让大家参观一下么
呜呜呜呜
我想看哥哥帅气的身影
混的人。
回复

使用道具 举报

3

主题

46

帖子

93

积分

注册会员

Rank: 2

积分
93

猫咪币纪念章

发表于 2021-8-27 10:11:25 | 显示全部楼层
李恒道 发表于 2021-8-26 22:24
哥哥研究出来成果能论坛发一份让大家参观一下么
呜呜呜呜
我想看哥哥帅气的身影 ...



不存在的了。。我已经好久没继续撸码了。。
vue这个css简直是毒瘤(而且我现在写的是chrome插件)

还没出生就胎死腹中了
回复

使用道具 举报

发表回复

本版积分规则

快速回复 返回顶部 返回列表