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。期待該問題的解決方案!!!
ide

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

相關文章
相關標籤/搜索