黑客是这样用JavaScript检测浏览器的

标签:JavaScript

一般检查浏览器是通过客户端发出的User-Agent,不过这个是可以更改的(最恶劣的就是Safari)。
所以就有其他方法,比如判断ActiveXObject是否定义,来检测是否为IE。
不过黑客的方法更简短,下面来看看吧。

原文:DETECTING BROWSERS JAVASCRIPT HACKS

//检测Firefox 2/3
FF=/a/[-1]=='a'
//检测Firefox 3
FF3=(function x(){})[-5]=='x'
//检测Firefox 2
FF2=(function x(){})[-6]=='x'
//检测IE
IE='\v'=='v'
//检测Safari
Saf=/a/.__proto__=='//'
//检测Chrome
Chr=/source/.test((/a/.toString+''))
//检测Opera
Op=/^function \(/.test([].sort)
合起来就是这个:
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'\v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function \(/.test([].sort)?'Op':'Unknown'
你可以把下面的内容复制到地址栏,回车就会弹出来浏览器的名称了:
javascript:alert('你用的浏览器是'+((function x(){})[-5]=='x'?'Firefox3':(function x(){})[-6]=='x'?'Firefox2':/a/[-1]=='a'?'Firefox':'\v'=='v'?'IE':/a/.__proto__=='//'?'Safari':/s/.test(/a/.toString)?'Chrome':/^function \(/.test([].sort)?'Opera':'Unknown'));

更新:目前Chrome已经不能用这个方法检测了。

1条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?