五大浏览器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浏览器应用的基础吧。
只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。

 

Js代码  收藏代码
  1. Sys={};  
  2.       
  3.     var na=navigator.userAgent.toLowerCase();  
  4.     if(window.<span style="color: #800000;"><strong>activeXObject</strong></span>){//IE  
  5.         Sys.ie=na.match(/msie([\d.]+)/)[1];  
  6.     }else if(document.<span style="color: #800000;"><strong>getBoxObjectFor</strong></span>){//Firefox  
  7.         Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];  
  8.     }else if(window.<strong><span style="color: #800000;">MessageEvent</span></strong>&&!document.<strong><span style="color: #800000;">getBoxObjectFor</span></strong>){//Google Chrome   
  9.         Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];  
  10.     }else if(window.<strong><span style="color: #800000;">opera</span></strong>){//opera  
  11.         Sys.opera=na.match(/opera.([\d.]+)/)[1];  
  12.     } else   if  (window.<span style="color: #800000;"><strong>openDatabase</strong></span>) {//Safari  
  13.         Sys.safari = ua.match(/version\/([\d.]+)/)[1];    
  14.     }   
  15.       
  16.     if(Sys.<span style="color: #800000;"><strong>ie</strong></span>) out.print("IE:"+Sys.ie);  
  17.     if(Sys.<span style="color: #800000;"><strong>firefox</strong></span>)out.print("firefox:"+Sys.firefox);  
  18.     if(Sys.<strong><span style="color: #800000;">chrome</span></strong>)out.print("chrome:"+Sys.chrome);  
  19.     if(Sys.<span style="color: #800000;"><strong>opera</strong></span>)out.print("opera:"+Sys.opera);  
  20.     if(Sys.<strong><span style="color: #800000;">safari</span></strong>)out.print("safari:"+Sys.safari);  

 

第二种写法:

 

 

Js代码  收藏代码
  1. Sys={};  
  2.   
  3. var na=navigator.userAgent.toLowerCase();  
  4. window.ActiveXObject?Sys.ie=na.match(/msie([\d.]+)/)[1];  
  5. document.getBoxObjectFor?Sys.firefox=na.match(/firefox\/([\d.]+)/)[1];  
  6. window.MessageEvent&&!document.getBoxObjectFor?Sys.chrome=na.match(/chrome\/([\d.]+)/)[1];  
  7. window.opera?Sys.opera=na.match(/opera.([\d.]+)/)[1];  
  8. window.openDatabase?Sys.safari=na.match(/version\/([\d.]+)/)[1];  
展开阅读全文

没有更多推荐了,返回首页