万能去广告 + 隐私保护 · 合一版
一个用户脚本,同时解决两件事:把网页广告清干净,让浏览尽量不留痕迹。 无面板、无弹窗、不打扰,装上就生效,全自动运行。
脚本能力分为两大块。
| 模块 | 作用 |
|---|---|
| 广告容器清除 | 按 class/id 关键词自动生成选择器并隐藏,同时清理动态插入的广告节点 |
| 智能弹窗清理 | 综合判断尺寸、定位方式、关键词、是否含表单/视频,只清广告遮罩,不误删登录框和播放器 |
| 视频广告跳过 | 自动识别并点击「跳过广告 / Skip Ad」按钮 |
| 视频广告快进 | 检测到广告播放时静音并提升至 16 倍速,广告结束恢复原倍速 |
| 反反广告拦截 | 移除「请关闭广告拦截器」的全屏提示层,并尝试自动点击关闭按钮 |
| 滚动解锁 | 恢复被广告遮罩锁死的页面滚动 |
| 站点专属净化 | 百度、CSDN、知乎、B站、微博、简书、视频站针对性规则 |
| 模块 | 作用 |
|---|---|
| 剥离追踪参数 | 清除链接中的 utm_*、fbclid、gclid、msclkid、spm、from 等 49 种追踪参数 |
| 拦截统计脚本 | 阻断 Google Analytics、Facebook Pixel、百度统计、Sentry、Bugsnag、Clarity 等脚本加载 |
| 清除 Cookie | 页面加载时与离开时清除当前站点 Cookie |
| 清除 Storage | 清空 localStorage 与 sessionStorage |
| 清除 Referrer | 注入 no-referrer,目标站点不会知道你从哪来 |
| 降低浏览器指纹 | 伪装 navigator.webdriver、Canvas 像素加噪、屏蔽 WebGL 厂商与渲染器信息 |
universal-adblock.user.js 全部代码Ctrl + S 保存把 universal-adblock.user.js 直接拖入脚本管理器的脚本列表即可。
无需任何操作。脚本启用后,打开任意网页即自动工作。
如果想确认是否生效,按 F12 打开控制台,看到下面这行日志即表示已启动:
[万能去广告+隐私保护 v2.0] 已启动:去广告 + 视频跳过 + 隐私保护
| 站点 | 预期效果 |
|---|---|
| 百度搜索 | 搜索结果中的「推广」条目消失 |
| CSDN 博客 | 登录弹窗关闭、侧栏广告消失、可自由复制 |
| 知乎 | 广告卡片与登录弹窗消失 |
| B站首页 | 推广卡片消失 |
| YouTube | 广告自动点击跳过或被 16 倍速快进 |
脚本执行分五步。
1. 注入 CSS(document-start)
把广告关键词批量转换成属性选择器,用 GM_addStyle 一次性注入,广告在渲染阶段就被隐藏,避免闪一下再消失。
2. 清理 DOM
cleanAds() 移除广告容器与广告联盟 iframe;cleanPopups() 处理浮层;antiAnti() 处理反广告拦截提示。
3. 处理视频
skipVideoAd() 找跳过按钮;fastForwardAd() 在广告播放时提速静音,用 WeakMap 记录原始播放速率以便还原。
4. 隐私处理
创建 no-referrer meta;劫持 Canvas getImageData 与 WebGL getParameter;清 Cookie/Storage;用 MutationObserver 持续剥离新插入链接中的追踪参数。
5. 调度循环 MutationObserver 触发 + 400ms 防抖为主,每 3 秒全量兜底扫描为辅,兼顾实时性与性能。
以下元素永远不删:
<body>、<html><video> / <audio> 的元素弹窗清理额外跳过含 <form> / <input> / <textarea> 的容器,避免误删登录框。
脚本通过 @exclude 主动跳过以下站点,防止清除 Cookie / Storage 导致支付或登录异常:
bank 的域名脚本只处理当前页面可见的数据,不做任何网络请求,不上传任何信息。
但受浏览器安全模型限制,脚本无法做到:
clearTrackingData() 中的 Cookie 清理段,只保留 Storage 清理。[class*="ad"] 这类宽泛匹配在少数站点会隐藏正常元素,遇到时把该站点加入 @exclude。playbackRate,脚本会在下一轮调度时再次设置。Q:装上没反应?
A:先看控制台有没有启动日志。没有的话检查:① 脚本是否已启用;② @match 是否为 *://*/*;③ 当前站点是否在 @exclude 名单中;④ 是否被其他同类脚本冲突。
Q:登录被踢下线? A:Cookie 被清了。按「已知限制」第 1 条注释掉 Cookie 清理。
Q:某个正常内容被隐藏了?
A:把该站点加入 @exclude,或告诉我具体站点和元素,我补白名单。
Q:能发到 GreasyFork 吗?
A:可以。代码为原创,已标注 MIT 协议,发布前把 @author、@namespace 改成自己的信息即可。
| 文件 | 说明 |
|---|---|
universal-adblock.user.js |
脚本主体,可直接安装 |
CHANGELOG.md |
版本更新日志 |
README.md |
本文档 |
MIT License。可自由使用、修改、分发,保留版权声明即可。