JavaScript實(shí)現(xiàn)檢查頁面上的廣告是否被AdBlock屏蔽了的方法
每個(gè)人都討厭廣告??措娨?、看電影、看優(yōu)酷、看網(wǎng)頁時(shí),對(duì)滿天飛的廣告也是深惡痛絕。廣告是一個(gè)不招人喜歡的東西。但是,對(duì)一個(gè)中小網(wǎng)站站長/博客主來說,廣告幾乎是唯一的能成支持網(wǎng)站/博客正常運(yùn)轉(zhuǎn)的資金來源。如果一個(gè)博客主,只是無私發(fā)布稿件,能堅(jiān)持幾年的,很少。大多數(shù)慢慢失去了熱情。
火狐瀏覽器和谷歌瀏覽器里都有能夠屏蔽頁面給廣告的插件,最有名的是AdBlock和AdBlock Plus。前幾天,我做一個(gè)統(tǒng)計(jì),看看瀏覽網(wǎng)站的用戶中有多少人使用了AdBlock插件,發(fā)現(xiàn)這個(gè)數(shù)目竟然有總瀏覽人數(shù)的1/5。
1/5是一個(gè)不小的數(shù)目。如何能讓廣告位在這1/5的使用了AdBlock插件的用戶的頁面上用其它圖片代替呢?要想做到這一點(diǎn),首先是要有個(gè)辦法知道當(dāng)前瀏覽器中使用了AdBlock插件。經(jīng)過一些測試,我發(fā)現(xiàn),AdBlock對(duì)“Ad”或“Google AD”這樣的詞非常敏感,只要是某個(gè)頁面元素的ID或css class名中有“Ad”字樣的,這個(gè)元素基本上都會(huì)被AdBlock插件屏蔽掉,也就是 display:none:
<div class='google-ad testAd'> 這個(gè)div將會(huì)被屏蔽掉 </div>
有了這個(gè)規(guī)律,我就能夠使用JavaScript發(fā)現(xiàn)當(dāng)前瀏覽器是否開啟了AdBlock插件。首先,我們將Google廣告代碼放到一個(gè)div里,并且將div的css class name里放入一個(gè)很明顯的表示google AD的類名:
<div class='google-ad testAd'> 這里放置Google廣告代碼</div>
然后在頁面的底部用Js檢測,:
if ($('.google-ad').height() == 0) showOtherImage();
這里還有一個(gè)問題,Google的廣告通常是指Dom加載完畢后顯示的,為了保證在Google廣告加載完成后再進(jìn)行探測,要給js代碼加入延遲執(zhí)行特征,這樣避免了誤檢測:
$(function(){
setTimeout(function(){
if ($('.google-ad').height() == 0)
showOtherImage();
},3000);
});
這里的showOtherImage();方法里我們能做些什么呢?我們可以放一些京東、當(dāng)當(dāng)、亞馬遜會(huì)其它網(wǎng)站的促銷圖片和鏈接,通過獲取傭金,多少算是對(duì)損失的一點(diǎn)彌補(bǔ)。
- javascript實(shí)現(xiàn)網(wǎng)頁屏蔽Backspace事件,輸入框不屏蔽
- javascript屏蔽右鍵代碼
- JavaScript屏蔽指定區(qū)域內(nèi)右鍵菜單
- JavaScript 關(guān)鍵字屏蔽實(shí)現(xiàn)函數(shù)
- javascript 屏蔽鼠標(biāo)鍵盤的幾段代碼
- 在textarea中屏蔽js的某個(gè)function的javascript代碼
- 屏蔽鼠標(biāo)右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵 的javascript代碼
- 實(shí)用javaScript技術(shù)-屏蔽類
- javascript實(shí)現(xiàn)劃詞標(biāo)記+劃詞搜索功能
- javascript過濾危險(xiǎn)腳本方法
- JavaScript實(shí)現(xiàn)自動(dòng)對(duì)頁面上敏感詞進(jìn)行屏蔽的方法
相關(guān)文章
JS實(shí)現(xiàn)經(jīng)典的中國地區(qū)三級(jí)聯(lián)動(dòng)下拉菜單功能實(shí)例【測試可用】
這篇文章主要介紹了JS實(shí)現(xiàn)經(jīng)典的中國地區(qū)三級(jí)聯(lián)動(dòng)下拉菜單功能,結(jié)合完整實(shí)例形式分析了javascript基于事件響應(yīng)實(shí)現(xiàn)頁面元素動(dòng)態(tài)變換的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06javascript 彈出窗口中是否顯示地址欄的實(shí)現(xiàn)代碼
程序中通過點(diǎn)擊一個(gè)“發(fā)貨提醒”鏈接彈出另一個(gè)窗口,使用的方法是用javascript 的openUrl()方法。2011-04-04《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記一:Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義分析
這篇文章主要介紹了《javascript設(shè)計(jì)模式》學(xué)習(xí)筆記Javascript面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)象成員的定義,結(jié)合實(shí)例形式分析了《javascript設(shè)計(jì)模式》中JavaScript面向?qū)ο蟪绦蛟O(shè)計(jì)的原理、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04js中文逗號(hào)轉(zhuǎn)英文實(shí)現(xiàn)
中文逗號(hào)如何轉(zhuǎn)英文,下面為大家詳細(xì)介紹下,感興趣的朋友不要錯(cuò)過2014-02-02淺談JSON.stringify()和JOSN.parse()方法的不同
parse 用于從一個(gè)字符串中解析出json 對(duì)象而stringify用于從一個(gè)對(duì)象解析出字符串,這篇文章主要介紹了JSON.stringify()和JOSN.parse()方法的不同,需要的朋友可以參考下2016-08-08JavaScript棧和隊(duì)列相關(guān)操作與實(shí)現(xiàn)方法詳解
這篇文章主要介紹了JavaScript棧和隊(duì)列相關(guān)操作與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript棧和隊(duì)列的概念、原理、定義、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12Bootstrap選項(xiàng)卡學(xué)習(xí)筆記分享
這篇文章主要為大家詳細(xì)介紹了Bootstrap選項(xiàng)卡學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02