2014-04-01 44 views
3

我嘗試瞭解adblock如何隱藏元素。我只看到那樣的東西-moz-binding: url("about:abp-elemhidehit?067696143543#dummy") !important;。這個綁定是空的。我查看源代碼並查看AboutHandler,它攔截了abp-elemhidehit?(Math.Random),但看起來事實上這個類只是計算過濾器中的命中數。 -moz-binding如何隱藏節點?adblock plus如何隱藏元素?

+0

我認爲這給了他們一個獨特的類名和類是剛剛設置爲'顯示:none' – Noitidart

+0

我沒有看到任何類別的變化,我也看不到顯示:none – Suhan

回答

2

open method of the HitRegistrationChannel返回<bindings xmlns='http://www.mozilla.org/xbl'><binding id='dummy'/></bindings>一個未命中和<bindings xmlns='http://www.mozilla.org/xbl'/>一擊。

前者看起來中性而不顯眼。但後者具有display:none的效果。

我不知道這種方法有什麼好處,但它的工作原理。

編輯:可能不可信的代碼可以修改CSS屬性而不是-moz-binding

+0

display:none effect設置在? – Suhan

+0

非常好的調查人員,這是一個有趣的筆記(關於後者被不可信的不可覆蓋)我也收藏這個。 – Noitidart

+0

@Suhan我不明白你的問題,你可以換個口吻嗎? – paa