首页 > 编程 > JavaScript > 正文

JS如何判断浏览器类型和详细区分IE各版本浏览器

2019-11-19 17:19:08
字体:
来源:转载
供稿:网友

今天用到JS判断浏览器类型,于是就系统整理了一下,便于后期使用。

 /*   * 描述:判断浏览器信息   * 编写:LittleQiang_w   * 日期:2016.1.5   * 版本:V1.1   */   //判断当前浏览类型  function BrowserType()  {    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串    var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器    var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器    var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器    var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器    var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器     if (isIE)     {       var reIE = new RegExp("MSIE (//d+//.//d+);");       reIE.test(userAgent);       var fIEVersion = parseFloat(RegExp["$1"]);       if(fIEVersion == 7)       { return "IE7";}       else if(fIEVersion == 8)       { return "IE8";}       else if(fIEVersion == 9)       { return "IE9";}       else if(fIEVersion == 10)       { return "IE10";}       else if(fIEVersion == 11)       { return "IE11";}       else       { return "0"}//IE版本过低     }//isIE end          if (isFF) { return "FF";}     if (isOpera) { return "Opera";}     if (isSafari) { return "Safari";}     if (isChrome) { return "Chrome";}     if (isEdge) { return "Edge";}   }//myBrowser() end      //判断是否是IE浏览器   function isIE()   {    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器    if(isIE)    {      return "1";    }    else    {      return "-1";    }   }         //判断是否是IE浏览器,包括Edge浏览器   function IEVersion()   {    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串    var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器    if(isIE)    {       var reIE = new RegExp("MSIE (//d+//.//d+);");       reIE.test(userAgent);       var fIEVersion = parseFloat(RegExp["$1"]);       if(fIEVersion == 7)       { return "IE7";}       else if(fIEVersion == 8)       { return "IE8";}       else if(fIEVersion == 9)       { return "IE9";}       else if(fIEVersion == 10)       { return "IE10";}       else if(fIEVersion == 11)       { return "IE11";}       else       { return "0"}//IE版本过低    } else if(isEdge) {   return "Edge"; }    else    {      return "-1";//非IE    }   } 

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

但存在一个问题,即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)"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表