通过JS判断浏览器类型

  1. <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今天用到JS判断浏览器类型,于是就系统整理了一下,便于后期使用。</span>  


[javascript] view plain copy
  1.   /* 
  2.    * 描述:判断浏览器信息 
  3.    * 编写:LittleQiang_w 
  4.    * 日期:2016.1.5 
  5.    * 版本:V1.1 
  6.    */  
  7.   
  8.   //判断当前浏览类型  
  9.   function BrowserType()  
  10.   {  
  11.       var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
  12.       var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器  
  13.       var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器  
  14.       var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器  
  15.       var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器  
  16.       var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器  
  17.       var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器  
  18.   
  19.       if (isIE)   
  20.       {  
  21.            var reIE = new RegExp("MSIE (\\d+\\.\\d+);");  
  22.            reIE.test(userAgent);  
  23.            var fIEVersion = parseFloat(RegExp["$1"]);  
  24.            if(fIEVersion == 7)  
  25.            { return "IE7";}  
  26.            else if(fIEVersion == 8)  
  27.            { return "IE8";}  
  28.            else if(fIEVersion == 9)  
  29.            { return "IE9";}  
  30.            else if(fIEVersion == 10)  
  31.            { return "IE10";}  
  32.            else if(fIEVersion == 11)  
  33.            { return "IE11";}  
  34.            else  
  35.            { return "0"}//IE版本过低  
  36.        }//isIE end  
  37.          
  38.        if (isFF) {  return "FF";}  
  39.        if (isOpera) {  return "Opera";}  
  40.        if (isSafari) {  return "Safari";}  
  41.        if (isChrome) { return "Chrome";}  
  42.        if (isEdge) { return "Edge";}  
  43.    }//myBrowser() end  
  44.      
  45.    //判断是否是IE浏览器  
  46.    function isIE()  
  47.    {  
  48.       var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
  49.       var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器  
  50.       if(isIE)  
  51.       {  
  52.           return "1";  
  53.       }  
  54.       else  
  55.       {  
  56.           return "-1";  
  57.       }  
  58.    }  
  59.      
  60.      
  61.    //判断是否是IE浏览器,包括Edge浏览器  
  62.    function IEVersion()  
  63.    {  
  64.       var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串  
  65.       var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器  
  66. var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器  
  67.       if(isIE)  
  68.       {  
  69.            var reIE = new RegExp("MSIE (\\d+\\.\\d+);");  
  70.            reIE.test(userAgent);  
  71.            var fIEVersion = parseFloat(RegExp["$1"]);  
  72.            if(fIEVersion == 7)  
  73.            { return "IE7";}  
  74.            else if(fIEVersion == 8)  
  75.            { return "IE8";}  
  76.            else if(fIEVersion == 9)  
  77.            { return "IE9";}  
  78.            else if(fIEVersion == 10)  
  79.            { return "IE10";}  
  80.            else if(fIEVersion == 11)  
  81.            { return "IE11";}  
  82.            else  
  83.            { return "0"}//IE版本过低  
  84.       }  
  85. else if(isEdge)  
  86. {  
  87.     return "Edge";  
  88. }  
  89.       else  
  90.       {  
  91.           return "-1";//非IE  
  92.       }  
  93.    }  

以上代码通过测试,可用!

        但存在一个问题,即IE5与IE7浏览器暂不能区分,以下是IE5与IE7下userAgent的信息;通过userAgent发现,简单的通过以上方法,无法正确区分IE5和IE7。期待该问题的解决方案!!!

     IE5: userAgent   "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"


     IE7: userAgent  "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"

64位系统要这样判断:

var isEdge = (userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 || userAgent.indexOf("Windows NT 6.1; WOW64; Trident/7.0;")) && !isIE; //判断是否IE的Edge浏览器

以上文章转载自http://blog.csdn.net/littleqiang_w/article/details/50463939

posted @ 2017-05-17 10:35  wepe  阅读(254)  评论(0编辑  收藏  举报