
我正在玩一個瀏覽器遊戲,您可以透過觀看各種廣告/電影/特別優惠/等來賺取遊戲內的高級貨幣。我的 Firefox Addon Adblock Plus 在攔截所有這些廣告方面做得非常好 - 這使我無法獲得祖母綠,因為腳本無法識別正在觀看的廣告(這沒關係)。
這些特殊廣告從各個外部網域載入到 IFrame 中。大致來說,結構是這樣的:
MainSite@DomainA > iframe#gameIframeID@DomainA > iframe#adIframeID@DomainB
因此,MainSite 包含一個包含遊戲的 iframe,其中包含另一個包含廣告的 iframe。
由於我是編寫 ABP-Rules 的新手,到目前為止我還沒有找到可行的解決方案。 如何建立 ABP 異常規則,允許 iframe 中具有 id(或類別)的所有內容adIframeID,這樣廣告和必要的腳本就可以正確加載,但 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(子文件)及其內部的所有內容(文件)列入白名單。