故障排除指南

本指南针对使用 Nvirya AdGuard v11.7.0 浏览网页时可能遇到的常见问题,提供基于界面内置控件的安全分步恢复流程。

A. 广告移除后页面仍残留暗色遮罩#

1. 症状表现#

  • 广告框或弹窗已经消失,但页面其余部分仍被一层半透明的黑色或灰色遮罩笼罩。
  • 页面无法上下滚动,或者点按页面上的链接没有任何反应。

2. 可能原因#

许多网站使用两个分离的元素来渲染模态广告:

  1. 位于前景的广告容器(<div> 或 <iframe>),以及
  2. 独立的全屏背景幕布元素(通常带有 position: fixed、高 z-index 或 backdrop-filter: blur(...)),并配合在 <html> 或 <body> 标签上设置 overflow: hidden 或 position: fixed 锁定滚动。

虽然 Nvirya AdGuard 会自动查找并移除配对的背景幕布(adjacentBackdropNodes),并按计划解除滚动锁定(scheduleUnlockPageScroll,在 0 ms、120 ms、420 ms 和 900 ms 执行),但部分网站可能异步插入背景幕布或使用自定义外层容器,导致背景幕布未随广告一同移除。

3. 建议操作步骤#

  1. 点按浮动快捷悬浮按钮或按 Alt+A 打开 Nvirya AdGuard 控制面板。
  2. 在概览标签页的快捷操作下,点按解除页面滚动锁定(“恢复被隐藏遮罩锁定的滚动”)。这会在 <html> 与 <body> 上强制设置 overflow: auto !important 并重置 position: fixed。
  3. 点按清理残留框架(“立即折叠空白广告占位”),隐藏残留的 Google 广告框架并重新扫描反广告拦截遮罩(handleAntiAdblock)。
  4. 如果仍有可见的暗色背景层阻挡点击,请在快捷操作中选择隐藏页面元素,点按该暗色遮罩,然后点按隐藏元素。

警告: 使用隐藏页面元素时,请在确认前留意蓝色高亮边框和层级滑块(层级 1/...)。如果蓝色高亮框选中了整个页面主体,请勿隐藏顶层页面容器(如 <main>、<article> 或 #app)——如果不慎隐藏了正文内容,请立即按 Ctrl+Z(或在快捷操作中点按撤销 (Ctrl+Z))将其恢复。

4. 如果问题仍然存在#

  1. 打开控制面板(Alt+A)并点按预览原始页面(3 秒),检查是否是某条过滤规则隐藏了需要用户交互的正常弹窗(如地区提示或年龄确认框)。
  2. 在快捷操作中点按本次会话暂停并刷新页面以完成交互,随后点按恢复本次会话防护。

5. 提交问题反馈时#

打开 关于 → 社区与支持 → 反馈,选择页面布局异常,并简要注明解除页面滚动锁定或清理残留框架是否解决了残留遮罩。

B. Cloudflare 或 CAPTCHA 验证无法完成#

1. 症状表现#

  • 安全验证页面(如 Cloudflare “Just a moment...”、Cloudflare Turnstile、hCaptcha、reCAPTCHA 或 DDoS-Guard)持续转圈、反复刷新循环,或无法显示验证复选框。

2. 可能原因#

安全与机器人验证系统依赖严格的浏览器完整性校验、挑战脚本、Cookie、同源 meta 刷新以及封闭式 Shadow DOM 组件。

Nvirya AdGuard v11.7.0 内置了多信号作用域豁免机制(evaluateSecurityChallengeState、isSecurityChallengeRequest 与 isProtectedSecurityElement),会自动对以下验证服务跳过 DOM 变动扫描、脚本拦截、meta-refresh 移除与网络拦截:

  • Cloudflare 验证挑战(challenges.cloudflare.com、/cdn-cgi/challenge-platform/、__cf_chl_*、.cf-turnstile)
  • hCaptcha(hcaptcha.com、.h-captcha、[data-hcaptcha-widget-id])
  • Google reCAPTCHA(google.com/recaptcha、recaptcha.net、.g-recaptcha)
  • DDoS-Guard(ddos-guard、#ddg-captcha)

但如果网站嵌套了自定义验证容器、JavaScript 原型包装(如包装后的 window.fetch 或 Function)触发了严格的完整性检测,或者外部 VPN/代理/DNS 过滤器拦截了验证资源,验证仍可能失败。

重要提示: Nvirya AdGuard 是广告与导航过滤器,不是 CAPTCHA 验证码或 DDoS 防护绕过工具,无法替您自动解答或跳过安全验证。

3. 建议操作步骤#

请按以下顺序依次尝试:

  1. 刷新页面一次。 临时的验证令牌过期通常在单次刷新后即可恢复。
  2. 确认 Nvirya AdGuard 已更新至最新版本。 打开关于标签页,点按存储与更新 → 检查更新,确认当前运行的是 v11.7.0 或更高版本。
  3. 在当前会话中暂停脚本或将网站加入白名单。 打开概览标签页,点按本次会话暂停(或允许此网站)。
  4. 重新进行验证。 刷新页面并完成 Cloudflare 或 CAPTCHA 验证挑战。通过验证并写入会话 Cookie 后,若此前使用的是会话暂停,您可以重新开启防护。
  5. 若问题持续存在请提交反馈:如果开启 Nvirya AdGuard 时必定失败,而暂停后立即恢复正常,请向维护者反馈。

4. 如果问题仍然存在#

如果在暂停 Nvirya AdGuard 并刷新页面后验证依然失败,则问题源于用户脚本之外。常见外部原因包括浏览器隐私/防指纹设置、第三方 Cookie 被禁、VPN/代理出口 IP 信誉不佳,或自定义 DNS 规则拦截了验证服务商域名。请勿全局关闭浏览器的核心安全功能;建议尝试切换 VPN 节点或在标准浏览器标签页中重新加载。

5. 提交问题反馈时#

在发送反馈中选择页面布局异常或其他,说明遇到了哪家验证服务(Cloudflare、Turnstile、hCaptcha、reCAPTCHA 或 DDoS-Guard),并注明暂停 Nvirya AdGuard 后是否能够正常通过验证。

C. 合法的下载链接无法打开#

1. 症状表现#

  • 点击下载按钮或外部镜像链接后没有任何反应,或者弹出标题为外部链接确认的对话框询问是否继续。
  • 点击继续后显示提示消息(浏览器拦截了弹窗,正在直接打开),并在当前标签页而非新标签页中打开文件。

2. 可能原因#

下载站与网盘分享页经常在下载按钮上绑定广告网络脚本,或将合法下载链接包裹在跨域名跳转链接中。在 v11.7.0 中,installRedirectGuard() 与 classifyUserAnchorNavigation() 按以下规则处理点击:

  • 直接放行受信任的文件托管站点: 指向知名代码托管平台与云盘(github.com、gitlab.com、sourceforge.net、mega.nz、mediafire.com、drive.google.com、dropbox.com、onedrive.live.com、box.com、fshare.vn、pixeldrain.com、gofile.io、apkmirror.com、archive.org 等)的链接只要不匹配明确广告域名,均会无感直接打开。
  • 自动剥离重定向包装参数(extractUnwrappedRedirectUrl): 如果链接包含重定向查询参数(?url=、?to=、?target=、?dest=、?redirect=,包括 Base64 编码的 http/https 目标地址),脚本会自动提取真实的落地 URL。
  • 外部链接确认弹窗(openRedirectConfirmModal): 当您点击在新标签页打开(target="_blank")、经过重定向/跟踪跳转或指向陌生外部下载主机的未受信任跨站链接时,Nvirya AdGuard 会暂停导航并显示外部链接确认对话框:
    • 提示语: “此网站想要打开外部链接:”
    • 目标域名徽章: 醒目显示目标主机名(例如 files.example.org)。
    • 询问语: “是否继续?”
    • 操作按钮: 取消 与 继续。

3. 建议操作步骤#

  1. 核对外部链接确认弹窗中的域名:
    • 如果显示的域名确实是您打算访问的文件托管商或外部网站,请点按继续。脚本会将该域名加入当前标签页会话的临时允许列表(state.tempAllowPopupHosts),清空 window.opener(win.opener = null)以防止反向标签页劫持(reverse tabnabbing),并打开链接(若浏览器原生弹窗拦截器阻止了 window.open,则自动回退为在当前标签页直接打开)。
    • 如果显示的域名看起来毫不相关或十分可疑,请点按取消留在当前页面。
  2. 如果没有弹出确认框且按钮毫无反应:
    • 部分网站需要先触发一次点击事件才会显示真正的下载按钮。请等待 1–2 秒后再次点按该按钮(当拦截广告弹窗时,triggerAdInterceptedAction 会在 60 ms 后自动重试标准下载/继续按钮,但自定义脚本按钮可能需要手动再点一次)。
    • 在 概览 → 快捷操作 中点按预览原始页面(3 秒),查看是否有备用下载链接或倒计时器被修饰性规则隐藏。

安全提示: 请勿盲目将不受信任的文件分享站加入白名单,打开陌生外部域名前请务必核对外部链接确认弹窗中显示的主机名。

4. 如果问题仍然存在#

可在 概览 → 快捷操作 中点按本次会话暂停,刷新页面并确认下载按钮指向的目标地址后再继续操作。

5. 提交问题反馈时#

在发送反馈中选择页面布局异常或其他,并说明页面上的哪个下载按钮无法响应。

D. Google 翻译或 Bing 翻译缓慢或无法使用#

1. 症状表现#

  • 在 Google 翻译或 Bing 翻译中输入的文本无法翻译、语音朗读按钮失效,或通过 *.translate.goog 翻译代理访问的网页无法正常加载脚本。

2. 可能原因#

在线翻译应用会在您输入时频繁发起后台 fetch 与 XMLHttpRequest 请求,并动态更新 DOM 属性(jscontroller、jsaction、jsname)。

Nvirya AdGuard v11.7.0 已针对以下翻译服务内置专用兼容性豁免(isTranslatorHostOrUrl、isTranslatorWhitelistedRequest 与 isProtectedTranslatorElement):

  • Google 翻译: translate.google.<tld>(包括 .com、.co.uk、.com.vn、.co.in 等区域域名)、*.translate.goog 代理域名、translate.googleapis.com、translate-pa.googleapis.com 以及 Google 翻译小部件框架(.goog-te-banner-frame、.goog-te-gadget、.skiptranslate)。
  • Bing 与 Microsoft 翻译: bing.com/translator(含 www.bing.com 与 cn.bing.com)、RPC 端点(/ttranslatev3、/tfetspktok、/tlookupv3、/tspeakv3、/tspellcheckv3)、api.cognitive.microsofttranslator.com、edge.microsoft.com/translate/ 及 #tta_input_ta / #tta_output_ta 容器。

如果翻译仍然缓慢或异常,原因通常属于以下三类之一:

  1. 脚本版本过旧或存在自定义拦截规则: 旧版脚本或您在本站过滤规则 / 连接日志中手动添加的规则拦截了必要元素或域名。
  2. 浏览器内置网页翻译功能冲突: 移动端 Safari 或 Chrome 内置的网页翻译功能(运行在浏览器内部而非 translate.google.com)遇到速率限制或 DOM 冲突。
  3. 外部 DNS 或 VPN 拦截: 网络层拦截工具阻止了 translate.googleapis.com、play.google.com/log、gstatic.com 或 bat.bing.com。

3. 建议操作步骤#

  1. 刷新页面一次。
  2. 打开 关于 → 存储与更新 并点按检查更新,确认已升级至 v11.7.0 或更高版本。
  3. 打开 概览 → 本站过滤规则 与 连接日志,检查是否手动隐藏了页面元素或拦截了 Google/Microsoft API 域名。
  4. 如果您正在通过翻译代理链接或内嵌翻译组件浏览第三方网站且仍遇到问题,请点按本次会话暂停(若是您经常使用的受信任翻译域名,也可点按允许此网站)。

注意: 虽然官方翻译界面(translate.google.com 与 bing.com/translator)已有内置保护,但通过翻译代理浏览的第三方网站仍可能包含恶意跳转或广告。测试陌生的被翻译网页时,建议优先使用本次会话暂停。

4. 如果问题仍然存在#

测试在暂停 Nvirya AdGuard 会话防护后翻译服务是否恢复。若暂停后依然失败,请检查您的 VPN、DNS 过滤器或浏览器内置翻译设置。

5. 提交问题反馈时#

通过发送反馈选择页面布局异常,注明您使用的是 translate.google.*、bing.com/translator、*.translate.goog 链接还是浏览器内置翻译栏。

E. 页面变得卡顿或无响应#

1. 症状表现#

  • 滚动页面时明显掉帧、在搜索框输入文字延迟,或加载某个特定网站时标签页卡住数秒。

2. 可能原因#

  • 网站每秒持续变更数千个 DOM 节点,触发频繁的监听批次。
  • 在设置中开启了深度网络过滤(strictMode),导致单信号修饰性检查(signals >= 1)评估并隐藏了更多元素。
  • 页面上的反广告拦截脚本陷入快速重试循环,不断尝试重新插入被移除的广告或遮罩。

3. 建议操作步骤#

按以下步骤判断卡顿是否与 Nvirya AdGuard 有关:

  1. 打开控制面板(Alt+A),在 概览 → 快捷操作 下点按本次会话暂停。
  2. 刷新页面,让网站在没有用户脚本钩子与 DOM 监听器的状态下干净加载。
  3. 对比暂停前后的页面表现:
    • 如果暂停后页面依然卡顿,则问题源于网站自身、设备/浏览器性能或其他扩展。
    • 如果暂停后页面立即恢复流畅,说明 Nvirya AdGuard 与该特定页面的脚本或 DOM 结构发生了性能冲突。
  4. 如果您在设置中开启了深度网络过滤,请尝试将其关闭并在恢复防护后刷新页面,查看标准过滤模式是否运行流畅。

4. 如果问题仍然存在#

在 概览 → 快捷操作 中点按允许此网站,在等待脚本修复期间对该域名保持暂停过滤。

5. 提交问题反馈时#

在受影响页面上短暂恢复防护(或在加入白名单前复制诊断信息),打开 关于 → 社区与支持 → 反馈,选择其他(或页面布局异常),并描述触发卡顿的具体操作(例如:“滚动到评论区时页面卡住”)。您无需打开浏览器开发者工具进行性能分析。

F. 广告仍然可见#

1. 症状表现#

  • 当 Nvirya AdGuard 处于启用状态时,页面上的横幅广告、信息流赞助内容、浮动小窗或视频广告仍然可见。

2. 可能原因#

  • 第一方分发或类名混淆: 网站从自身域名提供广告,并使用随机生成的 CSS 类名(如 Tailwind/CSS-in-JS 哈希),未命中内置选择器。
  • 新注册的广告网络域名: 广告来自尚未收录进 RE_AD_HOST 或 RE_SUSPECT_TLD 的新域名。
  • 有意设计的安全阈值: 为避免误删正常文章、配图或视频播放器,在未开启深度网络过滤时,inspectNode() 要求通用容器至少命中两个独立广告信号(signals >= 2)才会移除,且会自动跳过新闻正文上下文(isNewsThumbnailContext)或包含较长正文(>= 50 个字符)的元素。

3. 建议操作步骤#

  1. 针对静态横幅或浮动广告框: 打开 概览 → 快捷操作 并点按隐藏页面元素。点按该广告,拖动层级滑块(扩大 / 缩小)直到蓝色高亮框完整框住广告容器且未包含正文内容,然后点按隐藏元素(若有多个相同广告位则点按全部隐藏)。
  2. 针对第三方广告域名: 打开 概览 → 快捷操作 → 连接日志,找到提供广告的陌生第三方域名并点按拦截。
  3. 针对残留的 Google 广告框架: 在快捷操作中点按清理残留框架。

4. 如果问题仍然存在#

某些广告(尤其是服务端拼接的视频流广告,或与正常帖子 HTML 结构完全一致的第一方赞助卡片)无法仅靠一条简单的 CSS 选择器隐藏,否则会同时隐藏页面上的正常内容。

5. 提交问题反馈时#

打开 关于 → 社区与支持 → 反馈,选择漏拦广告,并简短描述广告在页面上的具体位置(例如:“文章页底部的悬浮横幅” 或 “点击播放器时弹出博彩网站新标签页”)。报告会自动附带当前域名与脱敏后的页面 URL。