`
leiwuluan
  • 浏览: 705076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

五大浏览器js 判断IE、Firefox、Safari、Chrome、Opera

阅读更多

IE

      只有IE支持和创建ActiveX控件,因此其他所有浏览器没有的东西,只要判断window对象是否存在ActiveXObject函数,就可以明确判断出当前浏览器是IE。IE各个版本的userAgent如下:
      Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
      Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
      Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
      Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)

版本号是MSIE之后的数字。

 

Firefox

      Firefox中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小(IE对应的中是 getBoundingClientRect函数)。这是Firefox独有的,判断它即可知道是当前浏览器是Firefox。Firefox几个版本的 userAgent大致如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12

版本号是Firefox之后的数字。

 

Opera

        Opera提供了专门的浏览器标志,window.opera属性。Opera的userAgent如下:

Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0

其中,版本号是靠近Opera的数字。

 

Safari

      Safari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志。Safari典型的userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3

其版本号是Version之后的数字。

 

Chrome

       Chrome有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数,根据这个条件还是可以准确判断出Chrome浏览器的。目前,Chrome的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
其中,版本号在Chrome只后的数字。

 

有趣的是,Chrome的userAgent还包含了Safari的特征,也许这就是Chrome可以运行所有Apple浏览器应用的基础吧。
只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。

 

Sys={};
    
    var na=navigator.userAgent.toLowerCase();
    if(window.activeXObject){//IE
        Sys.ie=na.match(/msie([\d.]+)/)[1];
    }else if(document.getBoxObjectFor){//Firefox
        Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
    }else if(window.MessageEvent&&!document.getBoxObjectFor){//Google Chrome 
        Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
    }else if(window.opera){//opera
        Sys.opera=na.match(/opera.([\d.]+)/)[1];
    } else   if  (window.openDatabase) {//Safari
        Sys.safari = ua.match(/version\/([\d.]+)/)[1];  
    } 
    
    if(Sys.ie) out.print("IE:"+Sys.ie);
    if(Sys.firefox)out.print("firefox:"+Sys.firefox);
    if(Sys.chrome)out.print("chrome:"+Sys.chrome);
    if(Sys.opera)out.print("opera:"+Sys.opera);
    if(Sys.safari)out.print("safari:"+Sys.safari);

 

第二种写法:

 

 

Sys={};

var na=navigator.userAgent.toLowerCase();
window.ActiveXObject?Sys.ie=na.match(/msie([\d.]+)/)[1];
document.getBoxObjectFor?Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];
window.MessageEvent&&!document.getBoxObjectFor?Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];
window.opera?Sys.opera=na.match(/opera.([\d.]+)/)[1];
window.openDatabase?Sys.safari=na.match(/version\/([\d.]+)/)[1];

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics