» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] 某国外站长的发明--封住那些用Adblock的人

这几天国外有一个宣扬使用Firefox+Adblock的人都是不尊重站长劳动的“盗贼”的站点http://whyfirefoxisblocked.com/ 在Digg上遭到了强大的恶评(http://www.digg.com/software/Why_Firefox_is_blocked ,近千条评论!),而这个站长写了一些封锁Firefox、尝试通过使用假广告来检测Adblock的存在的本地和远程代码。国内某些站长可以考虑参考一下了。

                检测Adblock存在的本地Javascript代码:
<img src="/fake.adbrite.gif" id="fakeAd" /><!-- 1x1 pixel image -->
<script language="javascript">
  function checkAdBlock() {
    var img = document.getElementById('fakeAd');
    if (img && (img.style.display == 'none' || img.style.visibility == 'hidden')) {
      window.location = 'http://myDomain.com/thief.htm';
    }
  }
  
  setTimeout('checkAdBlock()', 2000);

</script>


这段代码通过使用一个虚假的广告图片,如果发现该图片为不显示和隐藏的,就判定用户使用了封锁广告的软件。


<script>
function dieAdBlockPlusDie()
  {
  var giframe = document.getElementsByTagName("iframe");
  var bod = document.getElementsByTagName("body");
  var blocked=1;
  for (var i = 0; i < giframe.length; i++)
    {
    var name = giframe.getAttribute("name");
    if(name == "google_ads_frame")
      {
      var blocked=0;
      }
    }
  if(blocked)
    {
   bod[0].innerHTML = '<p align="center"><font face="CenturyGothic"><b>This page cannot be displayed because ad blockingsoftware has been detected.</b></font></p>';}
  }  
setTimeout('dieAdBlockPlusDie()', 2000);
</script>


而这一段则是对于那些尝试屏蔽Google Adsense的用户的。
至于检测Firefox,该站长提供了两种代码:


1、服务器端检测User-Agent
<?
$userAgent=$_SERVER['HTTP_USER_AGENT'];

if(stristr($userAgent, 'firefox'))
  {
    header("Location: [place URL of explanation page here]");
    exit();
  }
else
  {include("[place new name of article.php here.]");}
?>

这段PHP代码简单易懂,对于那些不会修改User-agent的用户很有用。


2、本地检测DOM

<script>
if(!document.all){window.location='http://whyfirefoxisblocked.com/';}
</script>
<noscript>
<meta http-equiv="refresh" c>
</noscript>


其中的URL和nojs.htm可以任意修改。这段代码不通过user-agent而通过检测本地浏览器的DOM,但是它将不仅影响Firefox,而影响一切Gecko引擎和WebKit引擎的浏览器(K-Meleon、Camino、Safari等)。


TOP

发新话题
     
官方公众号及微博