首頁  >  文章  >  web前端  >  JavaScript實作檢查頁面上的廣告是否被AdBlock封鎖了的方法_javascript技巧

JavaScript實作檢查頁面上的廣告是否被AdBlock封鎖了的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:32:082155瀏覽

每個人都討厭廣告。看電視、看電影、看酷、看網頁時,對滿天飛的廣告也是深惡痛絕。廣告是個不招人喜歡的東西。但是,對於一個中小型網站站長/部落客來說,廣告幾乎是唯一的能成支持網站/部落格正常運作的資金來源。如果一個部落格主,只是無私發布稿件,能撐幾年的,很少。大多數慢慢失去了熱情。

火狐瀏覽器和Google瀏覽器裡都有能夠封鎖頁面給廣告的插件,最有名的是AdBlock和AdBlock Plus。前幾天,我做一個統計,看看瀏覽網站的用戶中有多少人使用了AdBlock插件,發現這個數目竟然有總瀏覽人數的1/5。

1/5是一個不小的數目。如何能讓廣告位在這1/5的使用了AdBlock插件的用戶的頁面上用其它圖片代替呢?要做到這一點,首先是要有個方法知道目前瀏覽器中使用了AdBlock外掛程式。經過一些測試,我發現,AdBlock對「Ad」或「Google AD」這樣的字非常敏感,只要是某個頁面元素的ID或css class名稱中有「Ad」字樣的,這個元素基本上都會被AdBlock插件屏蔽掉,也就是display:none:

複製程式碼 程式碼如下:


有了這個規律,我就能夠使用JavaScript發現目前瀏覽器是否開啟了AdBlock插件。首先,我們將Google廣告程式碼放到一個div裡,並且將div的css class name裡放入一個很明顯的表示google AD的類別名稱:

複製程式碼 程式碼如下:


然後在頁面的底部用Js檢測,:

複製程式碼 程式碼如下:

if ($('.google-ad').height() == 0) showOtherImage();

這裡還有一個問題,Google的廣告通常是指Dom加載完畢後顯示的,為了確保在Google廣告加載完成後再進行探測,要給js代碼加入延遲執行特徵,這樣避免了誤檢測:

複製程式碼 程式碼如下:

$(function(){
   setTimeout(function(){
  if ($('.google-ad').height() == 0)
   showOtherImage();
  },3000);
});

這裡的showOtherImage();方法裡我們能做些什麼呢?我們可以放一些京東、當當、亞馬遜會其它網站的促銷圖片和鏈接,通過獲取佣金,多少算是對損失的一點彌補。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn