下載
                    加入VIP
                    • 專屬下載特權
                    • 現金文檔折扣購買
                    • VIP免費專區
                    • 千萬文檔免費下載

                    上傳資料

                    關閉

                    關閉

                    關閉

                    封號提示

                    內容

                    首頁 .網頁檢測AdBlock的6種方法

                    .網頁檢測AdBlock的6種方法.doc

                    .網頁檢測AdBlock的6種方法

                    羅慎微
                    2018-04-02 0人閱讀 舉報 0 0 暫無簡介

                    簡介:本文檔為《.網頁檢測AdBlock的6種方法doc》,可適用于IT/計算機領域

                    網頁檢測AdBlock的種方法蘭州網站建設有些網頁上充斥著令人厭惡的廣告這些廣告不僅阻礙了信息的獲取有的還嚴重影響了瀏覽者的心情。特別是某些毫不相關的多媒體廣告和彈出式窗口不僅讓人感到被騷擾還很容易誤點到浪費寶貴的時間。由此便誕生了大名鼎鼎的跨平臺AdBlock插件在任何主流瀏覽器上都有它的擴展或插件用戶可以安裝它并屏蔽絕大多數的廣告。既然AdBlock有檢測廣告并屏蔽它們的方法作為網頁制作者其實也有反過來檢測AdBlock的方法。為什么要檢測AdBlock這是一個有爭論的問題:用戶有選擇不看廣告、在瀏覽器頁面上銷毀廣告的權利網站也有捆綁廣告和信息一同派發給你并收取廣告商展示費用的自由。這兩者都不能互相干預并且在沒有明確法律法規的環境下你可以防范我我也可以防范你。除了向AdBlock直接提交“可接受的廣告網站”申請進入白名單以要求直接免受屏蔽之外下面介紹種從網站本身出發的檢測AdBlock并觸發相關操作的方法。以下的方法都是以不修改廣告代碼本身的基礎上完成的因為諸如GoogleAdSense的廣告聯盟要求不得修改代碼。檢測廣告模塊可見高度這是一種很樸實的方法原理也很簡單就是檢測對應廣告模塊的高度是否小于它應有的高度若小于就說明它被置空塌陷了也即說明啟用了AdBlock。代碼類似如下if(documentgetElementById('ads')clientHeight<){AdBlockDetected}蘭州網站建設此方案的可行性為中。某些情況下AdBlock屏蔽了某個廣告之后的處理情形比較特殊不會使得廣告模塊塌陷而是維持設定的高度顯示空白那個時候就不管用了。檢測可見廣告的個數這是一個和上述類似的方法也很樸實那就是檢測當前頁面上的廣告個數是否達到預期因為某些廣告可能并沒有觸發AdBlock的規則得以顯示所以可以利用檢查廣告的個數的方法來達到目的。借助jQuery代碼類似如下if($('ads')filter(':visible')length<){AdsshowinglessthanAdBlockDetected}此方案的可行性仍然為中理由和上一個方法類似。檢測googlejobrunner這個方法僅僅適用于GoogleAdSense廣告。在加載了AdSense的廣告代碼之后有一個windowgooglejobrunner對象被建立而AdBlock會阻止AdSense代碼的加載此時這個對象將不存在。我們可以靠這一點來檢測AdBlock。其代碼看起來類似于if(typeof(windowgooglejobrunner)!='object'){AdSensejsnotloadedAdBlockdetected}此方案的可行性為高因為這充分利用了AdSense的特點并且非常準確效率也很高。檢測adsbygoogle類型是否是數組這個方法僅僅適用于GoogleAdSense廣告。如果你使用了含有ins標簽的新異步代碼則蘭州網站建設可以使用這個方法。其原理是adsbygoogle在當前頁面加載時被初始化為一個數組而當AdSense的代碼被加載時它被進化為一個對象object而AdBlock會阻止AdSense代碼的加載。因此我們通過檢查adsbygoogle的狀態就可以知道AdBlock有沒有安裝。其代碼應該類似于windowsetTimeout(function(){if(adsbygoogleinstanceofArray){AdSensejsnotloadedAdBlockdetected}},)此方案的可行性為高因為這充分利用了AdSense的特點并且非常準確效率也很高。代碼中的setTimeout是為了彌補AdSense代碼運行所花費的時間大約兩秒夠了。使用Ajax模擬一個廣告代碼加載請求我們知道AdBlock會阻止廣告代碼的加載因此我們可以通過嘗試模擬加載一個廣告代碼adsjs如果AdBlock屏蔽了這次行為可以觸發其失敗的方法達到檢測的目的。借助jQuery我們可以這樣寫$ajax({url:"adsjs",dataType:"script"})fail(function(){AdsjsnotloadedAdBlockdetected})此方案的可行性很高因為這戳中了Adblock的弱點。其中adsjs本身可以是一個空文件但它不能不存在否則會發生錯誤導致誤判。所以你需要在這個目錄下放一個adsjs文件。你甚至可以把它叫做adsbygooglejs文件。如圖所示加載adsjs時行為被AdBlock阻止:蘭州網站建設加載額外的adsjs幫助判斷我們知道AdBlock會屏蔽頁面中類似名稱為adsbygooglejs、adsjs的腳本文件所以我們可以利用這個特點來引入一個自己的adsjs來幫助判斷。如何實現呢,首先創建一個adsjs文件這個文件里只有一句話:varisAdEnabled=!!然后我們在網頁頁面上試圖引入這個腳本文件:<scriptsrc="type="textjavascript"><script>如果存在AdBlockadsjs會被屏蔽加載因此isAdEnabled這個變量就不會被建立。于是我們這樣來檢測:varisAdEnabled=isAdEnabled||!if(!isAdEnabled){AdsjsnotloadedAdBlockdetected}這樣如果adsjs被屏蔽了isAdEnabled就會被初始化為false。這個方案的可能性也很高。寫在最后不僅僅有上述的檢測代碼還有人甚至做好了js插件、wordpress插件可以直接現成的用它們功能豐富并且可以自定義設置。你可以根據自己的情況選擇鐘意的方案。但在此應當注意的是廣告并不總是壞的相反網絡上存在著很多有價值的廣告。如果自己的網站因為廣告的問題被用戶反感那么廣告提供商和網站管理員都應該想想怎么著手去改善這一切而不應該激怒用戶而讓他們用上AdBlock最后雙方都有損失。蘭州網站建設注:相關網站建設技巧閱讀請移步到建站教程頻道。

                    用戶評價(0)

                    關閉

                    新課改視野下建構高中語文教學實驗成果報告(32KB)

                    抱歉,積分不足下載失敗,請稍后再試!

                    提示

                    試讀已結束,如需要繼續閱讀或者下載,敬請購買!

                    文檔小程序碼

                    使用微信“掃一掃”掃碼尋找文檔

                    1

                    打開微信

                    2

                    掃描小程序碼

                    3

                    發布尋找信息

                    4

                    等待尋找結果

                    我知道了
                    評分:

                    /5

                    &#46;網頁檢測AdBlock的6種方法

                    VIP

                    在線
                    客服

                    免費
                    郵箱

                    愛問共享資料服務號

                    掃描關注領取更多福利

                    幸运飞艇推荐