Adguard的其他规则误杀导致白屏的解除方案(以 Xtoys.app 为例)
Lazy loaded imageAdguard的其他规则误杀导致白屏的解除方案(以 Xtoys.app 为例)
字数 983阅读时长 3 分钟
2024-11-5
2024-12-19
AI智能摘要
GPT
文章介绍了Adguard屏蔽规则误杀导致Xtoys.app白屏的问题及解决方案。通过F12开发者工具发现网页DOM元素被隐藏,原因是body元素的class含有ads,被广告拦截器匹配。解决方案使用$generichide规则禁用CSS类规则,写出解除误杀规则@@||xtoys.app^$generichide。
本文介绍了如何使用Adguard的自定义屏蔽规则解除误杀,以Xtoys.app为例,详细说明了通过F12开发者工具定位被隐藏的广告元素,并使用$generichide规则禁用CSS类规则来解决网页白屏问题,从而确保用户能够正常访问网页内容。
要点
  • Adguard 的屏蔽规则误杀解除方案: 介绍了如何使用 Adguard 的 $generichide 自定义屏蔽解除规则。
  • 定位和解除广告元素: 详细解释了如何通过 F12 开发者工具定位误杀元素,并通过禁用 CSS 类规则来解除误杀元素的隐藏。
  • 特殊情况下的反广告拦截: 讨论了一种特殊情况下的反广告拦截方法。
各种类型供您挑选,包您满意
✈️
机场测评与安利
机场测评与安利

📝 主要内容

一. Xtoys.app  反广告屏蔽器情况

虽然实际上没啥广告,但最大的问题是,开着广告屏蔽器就会白屏,网页不会显示任何内容

二. 问题分析

通过F12打开开发者工具后,选择元素可以发现,其网页DOM是正常的
notion image
那这时问题就很明白了,是网页DOM元素被隐藏了,排查很容易得知原因是:
body元素的class含有ads,而实际查询CSS代码可知,此ads类没有任何样式,纯粹是故意加的为了被广告拦截器匹配到,从而隐藏此元素

三. 解决方案

1. 常规思路

所以可以尝试在该网站解除此规则的隐藏效果,但定位和维护成本较高,所以选择使用其他方法

2. 使用$generichide进行解决

禁用与例外规则对应的页面上的所有通用修饰规则 。即禁用CSS类规则,正好绕过这个问题
参考
根据其调用规则,我们可写出以下解除误杀规则
🚫
@@||xtoys.app^$generichide
🕵️‍♂️
规则解释
  • @@:这个符号表示这是一个“解除”规则,即该规则的目的是允许某些内容通过,而不是阻止它。
  • ||xtoys.app:这个部分指定了规则适用的域名。在这里,它指的是 xtoys.app 网站。|| 表示匹配该域名下的所有请求。
  • ^:这个符号用于表示规则的结束,通常用于指示后续的修饰符。
  • $generichide:这是一个修饰符,表示该规则将禁用与该页面上所有通用修饰规则相关的 CSS 类规则。具体来说,它会绕过那些可能导致网页内容被隐藏的规则。
总结来说,@@||xtoys.app^$generichide 是一个用于解除 xtoys.app 网站上广告拦截器误杀的规则,目的是确保用户能够正常访问和查看网页内容,而不受广告拦截器的影响。

📖 延伸阅读

🤗 总结归纳

  • 很神奇的一次反广告拦截方式,一般的都是检测是否广告拦截器存在,然后执行JS脚本,进行弹窗跳转之类的操作
各种类型供您挑选,包您满意
✈️
机场测评与安利
机场测评与安利

📎 参考文章

主要参考
 
💡
还可以加入Telegram的七行的小仓库|互联网记忆|博客 七行 技术交流群 找到更多小技巧哦🥰,还可以在聊天群探讨各种问题❓
欢迎在底部评论区分享您的想法和经验,让我们一起共同探讨,共同进步!
 

评论
Loading...