zoukankan      html  css  js  c++  java
  • JS如何判断浏览器类型和详细区分IE各版本浏览器

    /* 
      * 描述:判断浏览器信息 
      * 编写: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)"

  • 相关阅读:
    bzoj 1069 凸包+旋转卡壳
    bzoj 3203 凸包+三分
    bzoj 3779 重组病毒 好题 LCT+dfn序+线段树分类讨论
    bzoj 3881 [Coci2015]Divljak fail树+树链的并
    bzoj 4034 [HAOI2015]树上操作 入栈出栈序+线段树 / 树剖 维护到根距离和
    bzoj 2819 Nim dfn序+树状数组维护区间异或值
    bzoj 4031 [HEOI2015]小Z的房间 Matrix-tree定理
    BZOJ3676: [Apio2014]回文串
    BZOJ2434: [Noi2011]阿狸的打字机
    BZOJ2553: [BeiJing2011]禁忌
  • 原文地址:https://www.cnblogs.com/mingforyou/p/8478891.html
Copyright © 2011-2022 走看看