如何檢測瀏覽器是否安裝了Adblock,uBlock Origin,Adguard,uBlock等廣告屏蔽插件

      因爲咱們網站上的廣告常常被一些廣告插件給屏蔽掉,上級給我下達了一個檢測瀏覽器是否安裝了屏蔽廣告的插件的任務。css

      通過研究,借鑑,參考,整合了以下三種解決方案。jquery

      方案一:git

       利用廣告插件經過對含有google-ad,testad,ad等,帶ad的敏感詞彙的dom元素進行屏蔽的方式尋找突破口,我模擬了一個<div class="google-ad">這裏是一個廣告位</div>將這個div加載在頁面的dom節點的最頂端,發現全部的廣告插件,都能檢測到這個廣告位而且採用dispaly:none,或者將div的高度塌陷變爲0,因而咱們有了下面的方法。github

       在頁面頂部加上<div class="google-ad testAd"> 這裏是一個廣告位</div>,而後加入以下代碼:ajax

    

<script src="jquery.min.js"></script>
<script>
$(function(){
        if($('.google-ad').height()==0 || $('.google-ad').css('display') == 'none'){
           console.log($('.google-ad').height());
           console.log($('.google-ad').css('display'));
           alert('您的瀏覽器安裝了屏蔽廣告的插件Adblock,or uBlock Origin,要使您可以正常使用網站請先屏蔽瀏覽器上的相關的廣告屏蔽插件。');
        }

     })
</script>

        方案二:瀏覽器

        模擬動態加載一個廣告(ads.js)的方式,若是安裝了廣告插件,則這個廣告js(ads.js)不會被加載成功。dom

        新建一個空白的ads.js文件。網站

        在頁面上寫上以下代碼:google

 1 <script src="jquery.min.js"></script>
 2 <div style="text-align:center;clear:both;">
 3 <script>
 4 $(function(){
 5         $.ajax({
 6           url: "ads.js",
 7           dataType: "script"
 8         }).fail(function () {
 9            alert('您的瀏覽器安裝了屏蔽廣告的插件Adblock,or uBlock Origin,要使您可以正常使用網站請先屏蔽瀏覽器上的相關的廣告屏蔽插件。');
10         });
11      })
12 </script>

        方案三:url

        參照網上一位仁兄寫的代碼,親測有效。項目地址:https://github.com/sitexw/FuckAdBlock。

        方案四:逆向思惟

        要想本身網站上的廣告位圖片不被屏蔽掉,網站上加載的廣告js可以正常加載,就不要使用可以被廣告插件輕易讀取識別的命名規則去命名廣告了。

        這個問題的解決方法,再次檢驗了一個實用方法論:當苦苦思索的方法解決不了問題時,不妨轉化思路能夠採起迂迴的戰術間接尋求問題的解決方法。

相關文章
相關標籤/搜索