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

  • 相关阅读:
    API接口智能化测试探索与实践
    程序员的社会地位
    程序员五六年能存100万,你说你焦虑个啥!!!
    苹果公司宣布:公司内部的员工有权讨论自己的工作条件和薪酬
    男子股票账户突然多了一个亿!结果……
    你选择双休还是单休?
    PAL制式和NTSC制式的定义及区别(转)
    javascript入门系列演示·三种弹出对话框的用法实例(转)
    sink相关
    Ubuntu下安装gsteditor
  • 原文地址:https://www.cnblogs.com/mingforyou/p/8478891.html
Copyright © 2011-2022 走看看