Via风格自定义规则拦截器

Created at 3 months ago
Updated at 5 days ago
完全手动控制折叠/展开,支持域名级和规则级单独禁用,删除规则/域名时原地生效无闪烁,默认按拦截时间排序(当前域名优先),累计拦截次数统计(显示“拦截 X 次”)
Total Installs
472
Today's New
+6
User Rating
- / 5.0 (0)
Current Version
5.5.1
Script Details
Applicable Sites
LicenseMIT

以下是 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 界面布局

界面包含三个标签页:

  1. 规则管理 – 查看、编辑、启用/禁用规则
  2. 添加规则 – 批量添加新规则
  3. 工具 – 导入/导出规则,查看统计

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 反馈问题或建议。

祝您使用愉快! 🚀