JavaScript判断浏览器类型与版本

 

要想写出跨浏览器的Javascript,就必须懂得嗅探技术。这是浏览器大战遗留下的大地雷,事已如此,只好认命,乖乖写分支结构吧,函数就是这样不知不觉中变长的。

先看单一浏览器的判断,我们没有必须去找navigator.userAgent的麻烦,我在国外的博客网站收集了如下hack,短小精悍:

 

ie = !+"/v1" ;
ie
='/v'=='v' ;
ie
= 0//@cc_on+1;
ie = !!top.execScript;
ie
= /*@cc_on!@*/!1;
ie8
= !!window.XDomainRequest;

//我自创的,如果是IE,会返回6,7,8代表ie6,ie7,ie8,否则返回1
IEVersion = (" " + (/*@cc_on @_jscript_version @*/-1)).slice(-1)

//基于条件编译的嗅探脚本,还有如下几个:
IE8=@cc_on @_jscript_version == 5.8 ? true : @false
IE7
=@cc_on @_jscript_version == 5.7 ? true : @false
IE6
=@cc_on @_jscript_version == 5.6 ? true : @false
IE55
=@cc_on @_jscript_version == 5.5 ? true : @false

ff
= /a/[-1]=='a';
ff3
= (function x(){})[-5]=='x';
ff2
= (function x(){})[-6]=='x';

safari
=/a/.__proto__=='//';
safari
= window.openDatabase;

chrome
=/source/.test((/a/.toString+''));

opera
=!!window.opera ;
opera
=/^function (/.test([].sort);

it知识库JavaScript判断浏览器类型与版本,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。