Via风格自定义规则管理器

Created at 8 days ago
Updated at 7 days ago
类似Via浏览器的自定义规则功能,支持域名分组管理
Total Installs
70
Today's New
+2
User Rating
- / 5.0 (0)
Current Version
4.5.1
Script Details
Applicable Sites
LicenseMIT

Via风格自定义规则管理器 - 详细说明

🎯 脚本简介

Via风格自定义规则管理器 是一个用户脚本(UserScript),可以在任何网页上提供类似Via浏览器的自定义规则功能。它允许您通过CSS选择器隐藏网页上的特定元素(如广告、弹窗、干扰元素等),并按照域名进行分组管理。

✨ 主要特性

  1. 规则管理

· 按域名分组显示所有规则
· 可展开/折叠查看每个域名的具体规则
· 支持删除单个规则或整个域名的所有规则
· 实时显示规则状态(绿色圆点表示规则在当前页面生效)

  1. 便捷操作

· 批量添加规则(每行一条)
· 导入/导出规则(支持文本和文件)
· 两种导入模式:合并导入(保留现有规则)和替换导入(清空后导入)
· 自动应用规则,无需刷新页面

  1. 智能功能

· 自动识别当前域名
· 当前域名规则高亮显示
· 支持通配符域名(如 *.baidu.com)
· 规则置顶排序选项(当前域名规则可优先显示)

📦 安装要求

  1. 浏览器扩展:
    · Tampermonkey(推荐)
    · Violentmonkey
    · Greasemonkey
  2. 安装步骤:
    · 安装上述任一扩展
    · 创建新脚本
    · 将提供的完整代码复制粘贴到编辑器中
    · 保存并启用脚本

🛠️ 使用方法

打开管理界面

· 方法1:点击浏览器用户脚本管理器的图标,选择"📋 自定义规则"
· 方法2:脚本将在匹配的网页上自动运行

界面说明

  1. 规则管理标签页
📊 统计信息
   - 总规则数
   - 域名数量
   - 当前域名生效规则数

📁 域名分组
   - 绿色圆点:规则在当前页面生效
   - 灰色圆点:规则在当前页面未生效
   - "当前"标签:表示当前访问的域名
   - 点击域名可展开/折叠规则列表
  1. 添加规则标签页

· 文本输入框:每行一条规则
· 格式:域名##CSS选择器
· 示例:

www.example.com##.ad-banner
*.google.com###ads
youtube.com##.video-ads
  1. 工具标签页
📤 导出功能
   - 复制到剪贴板
   - 下载为文本文件

📥 导入功能
   - 从文件导入
   - 从文本导入

📝 快速导入框
   - 直接粘贴规则文本
   - 一键导入

📝 规则语法

基础格式

域名##CSS选择器

域名模式

  1. 精确匹配:
    www.baidu.com##.ad
    
  2. 通配符匹配:
    *.baidu.com##.advertisement
    
    · 匹配所有 baidu.com 的子域名
  3. 全部匹配:
    *##.popup
    
    · 匹配所有网站(慎用)

CSS选择器示例

/* 按类名 */
.class-name

/* 按ID */
#element-id

/* 按属性 */
div[class*='ad']
a[href*='ads']

/* 复杂选择器 */
div:has(.ad)
div.ad-container > .inner-ad

🔄 导入/导出功能

导出选项

  1. 复制到剪贴板
    · 将规则以文本格式复制
    · 方便分享或备份
  2. 下载为文件
    · 生成 .txt 文件
    · 文件名包含日期:custom-rules-2024-01-01.txt

导入选项

  1. 从文件导入
    · 选择本地 .txt 文件
    · 自动解析规则
  2. 从文本导入
    · 直接粘贴规则文本
    · 支持批量导入
  3. 导入模式:
    · 合并导入:保留现有规则,只添加新规则
    · 替换导入:清空现有规则,导入新规则

⚙️ 配置选项

排序设置

· 当前域名规则置顶:启用后,当前访问域名的规则会显示在最前面

自动应用

· 规则添加后立即生效
· 页面变化时自动重新应用规则
· 支持单页应用(SPA)

🎨 界面特点

视觉设计

· 现代化UI,采用渐变色设计
· 响应式布局,适应不同屏幕
· 流畅的动画效果
· 清晰的视觉反馈

交互体验

· 直观的分组管理
· 一键操作(删除、导入、导出)
· 状态实时更新
· 错误提示和成功反馈

🔧 技术特性

存储机制

· 使用Tampermonkey的 GM_getValue/GM_setValue
· 数据持久化存储
· 版本化管理(STORAGE_KEY包含版本号)

性能优化

· 规则按需应用(只应用当前域名相关规则)
· 防抖处理,避免频繁更新
· 内存管理优化

兼容性

· 支持所有现代浏览器
· 支持单页应用(通过MutationObserver监听)
· 跨域支持

🆘 常见问题

Q1: 规则不生效怎么办?

  1. 检查域名格式是否正确
  2. 确认CSS选择器是否正确
  3. 检查是否启用了脚本
  4. 尝试刷新页面

Q2: 如何批量删除规则?

· 在管理界面点击域名右侧的"删除全部"按钮
· 可删除整个域名的所有规则

Q3: 规则会影响到其他网站吗?

· 不会,规则是基于域名的
· 每个规则只对指定的域名生效
· 使用通配符 *.domain.com 会影响该域名的所有子域名

Q4: 如何备份规则?

  1. 进入"工具"标签页
  2. 点击"导出规则"
  3. 选择"下载为文件"或"复制到剪贴板"

Q5: 导入失败怎么办?

  1. 检查规则格式是否正确
  2. 确认每行规则都包含 ##
  3. 尝试重新导入
  4. 检查文件编码(建议使用UTF-8)

📋 使用建议

最佳实践

  1. 先测试后添加:
    1. 在浏览器开发者工具中测试选择器
    2. 确认能正确选择目标元素
    3. 再添加到规则管理器
    
  2. 分类管理:
    · 按功能分类(广告、弹窗、侧边栏等)
    · 按域名分类
    · 定期清理无效规则
  3. 备份策略:
    · 定期导出规则备份
    · 导出时选择包含日期的文件名

性能建议

  1. 避免过多通配符规则:
    不建议:*##.ad
    建议:specific-site.com##.ad
    
  2. 使用精确选择器:
    不建议:div
    建议:div.ad-container
    
  3. 定期清理:
    · 删除不再访问网站的规则
    · 合并重复规则

🔍 高级用法

复杂选择器示例

/* 隐藏包含特定文本的元素 */
div:contains("广告")

/* 隐藏特定位置的元素 */
body > div:nth-child(3)

/* 隐藏特定属性的元素 */
div[data-ad="true"]

多规则组合

# 隐藏多个广告位
site.com##.ad-top
site.com##.ad-sidebar
site.com##.ad-popup

# 使用通配符隐藏所有子域名的广告
*.site.com##.advertisement

📊 统计数据

脚本会显示:

· 总规则数量
· 域名数量
· 当前域名生效规则数
· 每个域名的规则数

🛡️ 安全与隐私

数据存储

· 所有规则存储在本地
· 不会上传到任何服务器
· 完全离线工作

权限说明

· GM_getValue/GM_setValue:存储规则数据
· GM_addStyle:向页面注入CSS样式
· GM_xmlhttpRequest:未来扩展功能使用
· unsafeWindow:提供全局API

🔄 更新维护

版本历史

· v4.5.0:初始版本,包含基本功能
· 后续更新将添加更多功能和优化

更新说明

  1. 规则格式向后兼容
  2. 数据会自动迁移
  3. UI会持续优化

🤝 参与贡献

反馈建议

· 通过脚本的"帮助"功能查看联系方式
· 报告问题或提出改进建议

开发贡献

· 脚本采用MIT许可证
· 欢迎提交改进和功能建议

📚 学习资源

CSS选择器学习

· MDN CSS选择器文档
· CSS选择器测试工具

用户脚本开发

· Tampermonkey文档
· 用户脚本编写指南

⚠️ 注意事项

使用限制

  1. 不能绕过付费墙:仅用于隐藏元素,不能破解付费内容
  2. 可能影响功能:错误的选择器可能导致网页功能异常
  3. 需要维护:网站更新后,规则可能需要调整

浏览器兼容性

· Chrome 80+ ✓
· Firefox 75+ ✓
· Edge 80+ ✓
· Safari 13+ ✓

性能影响

· 规则越多,初始加载越慢
· 建议保持规则总数在100条以内
· 复杂选择器比简单选择器消耗更多资源


通过这个详细的说明,您应该能够充分利用 Via风格自定义规则管理器 的所有功能。脚本设计为直观易用,即使是没有技术背景的用户也能快速上手。如果有任何问题,可以通过脚本的帮助功能获取更多信息。