js判断浏览器的类型

IE(Inetrnet Explorer)也有许多强奸版本:遨游,360安全浏览器,搜狗浏览器,腾讯TT,迅雷安全浏览器……数不完,这些浏览都是运行在IE的内核之上,一旦IE中毒,那电脑里安全的这些所谓安全浏览也跟着无法使用,实在是非常安全
      由于IE很比较常见,所以它很容易被攻击,网络上也出现很多基于IE的恶意插件(百度超级搜霸,google工具条,这两者相对安全)。这些浏览拥有自己的内核,目前基本不会被恶意插件XX,而且它们的体积比起IE少得多,运行速度也比IE快

Mozilla Firefox(火狐浏览器),Safari,苹果计算机的最新作业系统Mac OS X中新的浏览器,Google Chrome,中文名为“谷歌浏览器”,是一个由Google公司开发的网页浏览器。与苹果公司的safari相抗衡,浏览速度在众多浏览器中走在前列,属于高端浏览器

     JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的。

   

各种浏览器的特征及其userAgent。

IE

只有IE支持创建ActiveX控件,因此她有一个其他浏览器没有的东西,就是ActiveXObject函数。只要判断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浏览器应用的基础吧。

只要了解了以上信息,我们就可以根基这些特征来判断浏览器类型及其版本了。

    <script type="text/javascript">

       Sys={};

       var na=navigator.userAgent.toLowerCase();

      if(window.activeXObject){

        Sys.ie=na.match(/msie([/d.]+)/)[1];

       }else if(document.getBoxObjectFor){

        Sys.firefox=na.match(/firefox//([/d.]+)/)[1];

       }else if(window.MessageEvent&&!document.getBoxObjectFor){

        Sys.chrome=na.match(/chrome//([/d.]+)/)[1];

       }else if(window.opera){

        Sys.opera=na.match(/opera.([/d.]+)/)[1];

      } else   if  (window.openDatabase) {

             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);

 

 

    </script>

   第二种写法:

    <script>

     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];

    </script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值