常见问题解答 (FAQ)
以下为您简明、诚实地解答关于 Nvirya AdGuard v11.7.0 的 11 个常见问题。如需了解底层技术细节,请点击对应链接查看专题指南。
1. Nvirya AdGuard 能拦截所有广告吗?#
不能。Nvirya AdGuard 可过滤已知的第三方广告域名、常见横幅/弹窗结构以及受支持网站(包括 YouTube、Google 搜索、Bing 搜索、Reddit、X/Twitter、Quora 和 Facebook 移动端)上的赞助内容槽位。但网站会不断更改页面结构与域名,且部分第一方自营广告的 HTML 结构与正常内容完全相同。详情请参阅 合理预期与非保证事项 与 故障排除指南。
2. 为什么有些视频广告仍会短暂出现?#
在 YouTube 等平台上,视频广告与主媒体播放器紧密耦合。当广告绕过初始 JSON 元数据裁剪并进入 <video> 元素时,Nvirya AdGuard 的视频保护回退机制(handleAdVideo)必须等待播放器标记广告状态(.ad-showing 或 .ad-interrupting)并报告有效时长(> 0.5 s)后,才能将其静音、16 倍速快进并跳转到末尾(duration - 0.05 s)。直接拦截底层媒体流 URL 会导致视频卡死或播放错误。详情请参阅 YouTube 移动端广告跳过延迟。
3. 它可以完全替代浏览器扩展吗?#
不能完全替代。拥有特权 API 的浏览器扩展(如桌面端或 Firefox Android 上的 uBlock Origin)可调用浏览器底层网络接口(declarativeNetRequest 或 webRequest),在请求进入页面前将其取消。Nvirya AdGuard 是运行在网页上下文中的用户脚本,非常适合不支持完整桌面扩展的移动浏览器(如 iOS Safari + Stay 或轻量级 Android 浏览器),或作为交互式页面元素隐藏与防跳转辅助工具。请参阅 工作原理。
4. 为什么 Android 和 iOS 上的表现会有所不同?#
iOS 与 iPadOS 浏览器强制使用 Apple 的 WebKit 内核,该内核在用户脚本与页面主 JavaScript 世界之间实施了更严格的沙盒隔离。当 WebKit 阻止主世界脚本注入(window.__NVIRYA_MAIN_SHIELD__)时,Nvirya AdGuard 会在 关于 → 系统功能 中将绕过反广告拦截标记为 不支持,并在设置中禁用该开关。而在支持主世界注入的 Android 与桌面浏览器上,主世界网络钩子与全局属性模拟均可正常工作。请参阅 iOS Safari 与 WebKit 限制。
5. 它能绕过所有反广告拦截系统吗?#
不能。虽然 Nvirya AdGuard 模拟了常见广告全局变量(googletag、adsbygoogle、OBR、Criteo、_taboola、apstag、COMSCORE、BlockAdBlock、FuckAdBlock)、伪造了诱饵元素尺寸(250×300)并隐藏检测到的反广告拦截弹窗(AntiAdblockEngine),但它无法绕过服务端校验、严格的 内容安全策略 (CSP) 限制或 iOS WebKit 沙盒隔离。
6. 为什么更新后某个网站排版乱了或无法操作?#
网站结构与过滤规则都会随时间变化。网站更新后可能使正常容器误命中广告启发式规则,或者脚本更新收紧了遮罩与跳转检测。您可以先点按预览原始页面(3 秒)验证是否为样式规则所致,或在 概览 → 快捷操作 中点按本次会话暂停 / 允许此网站立即恢复页面,随后提交布局异常反馈。请参阅 故障排除指南。
7. 脚本会检查每一个网络请求和每一个 DOM 元素吗?#
不会。用户脚本只能检查经过其包装的 JavaScript API(fetch、XMLHttpRequest、sendBeacon 以及动态 <script> / <img> .src 赋值)发起的请求,而非浏览器发送的所有网络数据包。同样,为了保护 CPU 与电池续航,DOM 监听器会将变动收集到有界队列(MAX_QUEUE = 800)中分片处理,在点击陷阱检查时立即跳过内联文本元素(<p>、<span>、<h1>–<h6>、<li>、<td> 等)和正文容器,并将 YouTube 专属逻辑严格限制在 YouTube 域名内。请参阅 工作原理。
8. 为什么开启 VPN 或 DNS 过滤工具会影响拦截效果?#
VPN 与 DNS 拦截器(如 Shadowrocket、Surge、Loon 或 AdGuard DNS)会在请求到达浏览器 JavaScript 引擎之前,直接在网络层拒绝连接。当网络过滤器在 DNS 层阻断广告脚本或图片时,浏览器会先触发原生网络错误,使 Nvirya AdGuard 的 JavaScript 钩子来不及返回合成的 200 OK 响应或伪造 onload 事件,从而可能触发部分反广告拦截检测。请参阅 VPN、DNS 过滤器、Shadowrocket、Surge 与 Loon。
9. 如何反馈问题?#
打开控制面板(Alt+A),切换到关于标签页,滚动至社区与支持并点按反馈按钮。选择分类(漏拦广告、页面布局异常、视频播放问题、功能建议或其他),填写简短说明后点按提交。若需双向沟通,请使用同区域的 Telegram 或 Discord 链接。请参阅 问题反馈与报告。
10. 如何针对单个网站临时关闭防护?#
打开控制面板(Alt+A),在 概览 → 快捷操作 下:
- 点按本次会话暂停可在关闭当前标签页前停用对该域名的过滤。
- 点按允许此网站可将该域名加入持久白名单(
nvirya_x_whitelist)。
详情请参阅 功能指南。
11. 没有任何反馈报告是否意味着脚本工作完全正常?#
不是。零反馈仅仅代表没有用户提交报告,并不证明所有广告都已被拦截或完全没有误判。同样,在干净的网站(如 Wikipedia 或 GitHub)上防护统计显示为 0,只是说明该页面没有触发任何匹配的广告元素或跟踪器。