Js 判断浏览器类型

来源:互联网 发布:单片机控制蜂鸣器发声 编辑:程序博客网 时间:2024/04/30 13:33

今天,还有个备受打击的问题,怎么通过js来判定浏览器版本。初出茅庐时,我曾尝试自个写方法判定,后来jquery库之类的大量使用,已经忘记这个事了,记得以前看ibw代码时,发现了段相关代码,不过一直在草稿箱中,没有公布。这里也show,show吧,争取下次不要再犯同类错误:

_t.Browser = function ( sUA ){// IBW.Tool.Browservar win = window ,c = function (r){return r.test(sUA);},isIE = !+'\v1',isTrident = isIE || !!win.XDomainRequest,isWebkit = !isTrident &&  !navigator.taintEnabled;return {//浏览器嗅探 isIE  : isIE,isIE6 : isIE && (!win.XMLHttpRequest || !!win.XMLHttpRequest.constructor),isIE7 : isIE && !!win.XMLHttpRequest && !win.XMLHttpRequest.constructor && !win.XDomainRequest,isIE8 : isIE && !!win.XDomainRequest,isIE9 : !isIE && !!win.XDomainRequest, isMaxthon :!win.opera && !!win.external && typeof external.max_version !== 'undefined' , //opera 读external会抛出异常. external为 nullisTT : c(/; TencentTraveler/),is360 : c(/; 360/) ,isSogou : c(/; SE \d\./),//渲染引擎嗅探.isWebkit : isWebkit ,//safari chrome KHTML 渲染引擎.  !!+'\v1' 防止ie 6 报错isGecko : !!document.getBoxObjectFor || win.mozInnerScreenX != null,//firefox 渲染引擎isTrident : isTrident, //ie渲染引擎isPresto : !!win.opera,//opera 渲染引擎//扩展嗅探//判断是否为高速模式的sougou浏览器isFastModeSogou : isWebkit && !!win.external && win.external.propertyIsEnumerable('StartPageCall'),//判断是否为高速模式的sougou浏览器 并且需要在修复flash模式中 触发reflow  (sougou2.0 fastMode)isFastModeSogouNeedReflow : isWebkit && !!win.external && win.external.propertyIsEnumerable('StartPageCall') && !('localdb' in external),//判断是否为高速模式的QQ5浏览器isFastModeQQ : isWebkit && win.external && 'WebCorVer' in external,//判断是否支持iframe 修复flash遮挡div的bugisIframeOnFlash : isTrident || function(){for(var o in {1:1,0:1}) return o =='0'; return '_'}() || (win.mozInnerScreenX == null && !!document.getBoxObjectFor)};}(win.navigator.userAgent) ;

哎,window.navigator.userAgent真不应该忘啊,惭愧!





原创粉丝点击