我正在玩一款网页游戏,你可以通过观看各种广告/电影/特别优惠等来赚取游戏内高级货币。我的 Firefox 插件 Adblock Plus 在屏蔽所有这些广告方面做得相当不错 - 这使我无法获得绿宝石,因为脚本无法识别正在观看的广告(这没关系)。
这些特殊广告从各种外部域加载到 IFrame 中。因此,大致结构如下:
MainSite@DomainA > iframe#gameIframeID@DomainA > iframe#adIframeID@DomainB
因此,MainSite 包含一个带有游戏的 iframe,其中又包含另一个带有广告的 iframe。
由于我是编写 ABP 规则的新手,到目前为止我还没有找到可行的解决方案。 如何创建 ABP 异常规则,允许 iframe 中具有 id(或类)的所有内容广告框架编号,以便广告和必要的脚本能够正确加载,但是 MainSite 上的广告仍然被正常屏蔽?
我知道如何将特定域列入白名单,因此我可以将整个广告域列入白名单,但这个域可能会发生变化,我只希望他们的广告在这个游戏内,而不是其他地方;-)
答案1
如果 iFrame 有一个与之关联的 URL(即不是匿名 iFrame),您可以编写这样的过滤器:
@@||example.com/iframe?showad=true$subdocument,document,domain=foo.com
假设 iFrame 的 URL 是“https://example.com/iframe?showad=true“并且 iFrame 显示的域名是“foo.com”。
这样的过滤器将把 iFrame(子文档)及其内部的所有内容(文档)列入白名单。