Via风格自定义规则拦截器
以下是 Via风格自定义规则拦截器 的详细使用说明,帮助您快速掌握所有功能。
一、脚本简介
Via风格自定义规则拦截器 是一款用户脚本(UserScript),可让您通过 CSS 选择器 任意隐藏网页上的元素(如广告、弹窗、多余模块),并支持:
· 按域名分别设置规则(支持通配符 *.example.com)
· 域名级一键启用/禁用(临时关闭某网站所有规则)
· 规则实时生效,无需刷新页面
· 图形化管理界面,规则分组显示,支持批量导入/导出
· 长域名自动截断,点击可查看完整域名
兼容 Tampermonkey / Violentmonkey / Greasemonkey 等脚本管理器。
二、规则格式
每一条规则必须遵循以下格式:
域名##CSS选择器
· 域名:要应用规则的网站域名(如 www.example.com 或 *.google.com)
· 分隔符:固定的 ##(两个井号)
· CSS选择器:用于定位要隐藏的元素的 CSS 选择器
规则示例
用途 规则
隐藏特定 class 的广告 www.123pan.com##.ad-banner
隐藏某个 ID 元素 youtube.com##.video-ads
隐藏所有子域名下的某类元素 * .baidu.com##.advertisement
隐藏包含特定文字的元素(使用 :has()) news.com##div:has(.ad-label)
隐藏属性匹配的元素 forum.com##div[class * ='sponsor']
注意:CSS 选择器支持任意标准选择器(包括 :has()、:contains() 等现代伪类,但需浏览器支持)。
三、域名匹配规则
写法 含义 匹配示例
example.com 精确匹配主域名 example.com(不匹配 www.example.com)
*.example.com 匹配所有子域名 www.example.com、mail.example.com、example.com 本身
- 匹配所有域名(全局规则) 任意网站
四、管理界面操作指南
4.1 打开界面
· 在网页空白处右键 → 选择 Tampermonkey → 📋 自定义规则
· 或点击浏览器扩展栏的 Tampermonkey 图标,在菜单中选择 📋 自定义规则
4.2 界面布局
界面包含三个标签页:
- 规则管理 – 查看、编辑、启用/禁用规则
- 添加规则 – 批量添加新规则
- 工具 – 导入/导出规则,查看统计
4.3 规则管理标签页
域名分组展示
· 规则按域名分组显示,每个域名折叠为一个卡片
· 点击域名头部 可展开/折叠该域名下的所有规则
· 当前域名 的分组会高亮显示,并带有 “当前” 标签
域名级开关
每个域名右侧有一个 启用/禁用 按钮:
· 启用(绿色勾):该域名下所有规则生效
· 禁用(灰色叉):该域名下所有规则临时失效,分组背景变灰
· 切换后立即生效,无需刷新页面
单条规则操作
每条规则右侧有两个按钮:
· 复制:将整条规则(如 example.com##.ad)复制到剪贴板
· 删除:删除该条规则(会弹出确认框)
删除整个域名组
点击域名右侧的 “删除全部” 按钮,可删除该域名下的所有规则(需确认)。
排序选项
· “当前域名规则置顶” 开关:开启后,当前网站的域名分组会排在最前面,方便快速管理。
长域名处理
· 域名过长时,显示区域会自动截断并显示省略号(...)
· 鼠标悬停 在域名上会显示完整域名
· 单击域名文本 会弹出提示框,显示完整域名(方便复制查看)
4.4 添加规则标签页
· 批量添加:在文本框中每行写一条规则(格式:域名##选择器),然后点击 “确认添加”
· 脚本会自动过滤已存在的规则,只添加新规则
· 支持以 # 或 ! 开头的注释行(会被忽略)
· 点击 “清空” 可快速清空输入框
4.5 工具标签页
导出规则
· 复制到剪贴板:将所有规则以纯文本形式复制,可粘贴到文件或分享
· 下载为文件:生成一个 .txt 文件,文件名包含日期,方便备份
导入规则
· 从文件导入:选择之前导出的 .txt 文件,自动解析规则
· 从文本导入:直接粘贴规则文本(每行一条)
· 导入时提供两种模式:
· 合并导入:保留现有规则,只添加文件中不重复的规则
· 替换导入:清空当前所有规则,完全替换为新规则
统计信息
· 显示总规则数、当前域名、当前生效的规则数量(仅计算域名开关开启且匹配当前域名的规则)
五、高级技巧
5.1 编写 CSS 选择器的建议
· 使用浏览器的 开发者工具(F12) 审查元素,右键复制 Selector 或手动编写更精确的选择器
· 避免过于宽泛的选择器(如 div),以免误隐藏正常内容
· 可以组合使用属性选择器:div[class*="ad"] 匹配 class 包含 “ad” 的 div
· 使用 :has() 隐藏包含特定子元素的父容器:div:has(> .ad-label)
5.2 调试规则是否生效
· 打开脚本管理界面,确认当前域名的开关为 启用
· 查看该域名下是否有对应的规则
· 如果规则写了但没生效,可能是选择器写错,或元素是动态加载的(脚本在页面加载时注入样式,对动态添加的元素依然有效,因为 display: none !important 会持续作用)
· 尝试刷新页面重新应用规则
5.3 临时关闭某网站所有规则
· 进入规则管理界面,找到对应的域名分组
· 点击 禁用 按钮(变成灰色),规则即刻失效
· 再次点击 启用 即可恢复
5.4 数据备份与迁移
· 定期使用 工具 → 导出规则 → 下载为文件 进行备份
· 更换浏览器或重装脚本后,通过 导入规则 恢复
六、常见问题
Q1:安装新版本后,旧规则会丢失吗?
不会。脚本会自动读取旧版存储(custom_rules_v5 或更早),并将规则迁移到新版数据结构中,同时保留域名开关状态。首次升级后请检查一次,确保规则完整。
Q2:点击启用/禁用按钮感觉卡顿?
已优化:切换开关时仅更新对应域名的 UI 和全局样式,不再重绘整个管理面板,响应速度极快。
Q3:域名太长,看不全怎么办?
鼠标悬停在域名上会显示完整域名;单击域名会弹出提示框,显示完整内容。
Q4:规则数量很多时,界面会变慢吗?
分组折叠设计 + 懒加载展开,通常几百条规则仍可流畅操作。如果规则超过数千条,建议拆分或使用文件导入导出管理。
Q5:如何完全卸载脚本并清除所有数据?
· 在脚本管理器中禁用或删除该脚本
· 如需清理存储数据,打开浏览器开发者控制台(F12),执行:
localStorage.removeItem('custom_rules_v6');
GM_deleteValue('custom_rules_v6');
(具体命令取决于脚本管理器,也可在脚本管理器的“存储”标签页中手动删除)
七、版本更新日志(节选)
· v4.9.1:修复旧版数据迁移问题;优化域名开关响应速度;增加长域名截断与点击显示完整功能。
· v4.9.0:新增域名级临时关闭规则功能。
· v4.8.5:规则项交替背景色、悬停浅蓝色反馈、无边框黑线。
八、联系与反馈
本脚本为开源项目,欢迎通过 GreasyFork 或 GitHub 提交 Issue 反馈问题或建议。
祝您使用愉快! 🚀