Trên mạng cũng chia sẽ nhiều cách vô hiệu quảng cáo, nay mình cũng đưa ra 2 phương pháp tự phát hiện và đưa ra nhắc nhở tắt khi khách truy cập Blog đang sử dụng adblock. Cả 2 cách mình đưa ra đều chặn khách truy cập nếu không vô hiệu adblock.
Cách 1: Sử dụng Style và Javascript
Cách này chỉ phát hiện nếu đang chạy quảng cáo Adsense của Google
Bước 1: Chèn style trước </b:skin>
#unblocker{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;opacity:0.980000019073486328125;display:block;z-index:9999;overflow:hidden}#unblocker p{color:#666;text-align:center;margin:15% auto;font-size:1.5rem;max-width:750px;display:table;line-height:1.5}#unblocker p:before{font-family:fontawesome;text-align:center;padding:0;font-weight:400}#unblocker p:before{content:'\f023';background:#1DBF69;color:#fff;display:block;width:2em;height:2em;line-height:2em;font-size:2.5rem;clear:both;border-radius:100%;margin:0 auto 3%}#unblocker p:hover:before{content:'\f13e'}#unblocker p a,#unblocker p i{font-size:15px}#unblocker p a,#unblocker p i{font-size:15px}#unblocker ~ *{display:none}
Bước 2: Chèn javascript trước thẻ đóng </body>
<script>//<![CDATA[var mql = window.matchMedia('screen and (min-width: 60em)');if (mql.matches){(function(w,u){var d=w.document,z=typeof u;function unblocker(){function c(c,i){var e=d.createElement('div'),b=d.body,s=b.style,l=b.childNodes.length;if(typeof i!=z){e.setAttribute('id',i);s.margin=s.padding=0;s.height='100%';l=Math.floor(Math.random()*l)+1}e.innerHTML=c;b.insertBefore(e,b.childNodes[l-1])}function g(i,t){return !t?d.getElementById(i):d.getElementsByTagName(t)};function f(v){if(!g('unblocker')){c('<p>Vui lòng tắt plugin chặn quảng cáo và tải lại trang! Xin cảm ơn.<br/>Please disable your Adblocker to access this site! Thanks.</p>','unblocker')}};(function(){var a=['ad','ads','adsense'],l=a.length,i,s='',e;for(i=0;i<l;i++){if(!g(a[i])){s+='<a id="'+a[i]+'"></a>'}}c(s);l=a.length;setTimeout(function(){for(i=0;i<l;i++){e=g(a[i]);if(e.offsetParent==null||(w.getComputedStyle?d.defaultView.getComputedStyle(e,null).getPropertyValue('display'):e.currentStyle.display)=='none'){return f('#'+a[i])}}},250)}());(function(){var t=g(0,'img'),a=['/adsales/ad','/adsenceSearch.','/adtools2.','/adv2.','/partner_ads_','_ads.html','.468x60-'],i;if(typeof t[0]!=z&&typeof t[0].src!=z){i=new Image();i.onload=function(){this.onload=z;this.onerror=function(){f(this.src)};this.src=t[0].src+'#'+a.join('')};i.src=t[0].src}}());(function(){var o={'http://pagead2.googlesyndication.com/pagead/show_ads.js':'google_ad_client'},S=g(0,'script'),l=S.length-1,n,r,i,v,s;d.write=null;for(i=l;i>=0;--i){s=S[i];if(typeof o[s.src]!=z){n=d.createElement('script');n.type='text/javascript';n.src=s.src;v=o[s.src];w[v]=u;r=S[0];n.onload=n.onreadystatechange=function(){if(typeof w[v]==z&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){n.onload=n.onreadystatechange=null;r.parentNode.removeChild(n);w[v]=null}};r.parentNode.insertBefore(n,r);setTimeout(function(){if(w[v]===u){f(n.src)}},2000);break}}}())}if(d.addEventListener){w.addEventListener('load',unblocker,false)}else{w.attachEvent('onload',unblocker)}})(window);};//]]></script>
Bước 3: Chèn đoạn html ngay dưới <body>
<div><a id='ad'/><a id='ads'/><a id='adsense'/></div>
Lưu template
Cách 2: Chỉ sử dụng Javascript
Cách này đơn giản và có thể phát hiện nếu khách sử dụng chặn quảng cáo trình duyệt chỉ cần chèn link sau trước thẻ đóng </body> là xong
<script src='//cdn.rawgit.com/blogthuthuatwin10/adblocker/master/adblocker.min.js'></script>
Nếu sau này mình tìm được cách nào hay hơn sẽ bổ sung vào bài sau.