JavaScript 判斷瀏覽器的型別和版本

antzone發表於2019-05-18

技術的進步和時間的推移,不同瀏覽器越來越接近或者符合w3c標準。

但不同瀏覽器具有自己不同的特點,特別是低版本瀏覽器存在著比較嚴重的相容性問題。

所以有時候需要判斷瀏覽器的型別和獲取瀏覽器的版本。

下面就是一段能夠實現此功能的程式碼:

[JavaScript] 純文字檢視 複製程式碼
function sys_userAgent(){ 
  var userAgent = navigator.userAgent,     
  rMsie = /(msie\s|trident.*rv:)([\w.]+)/,     
  rFirefox = /(firefox)\/([\w.]+)/,     
  rOpera = /(opera).+version\/([\w.]+)/,     
  rChrome = /(chrome)\/([\w.]+)/,     
  rSafari = /version\/([\w.]+).*(safari)/;    
  var browser,version,ua;    
  ua = userAgent.toLowerCase();
  var match = rMsie.exec(ua);    
  if(match != null){    
    return { browser : "ie", version : match[2] || "0" };    
  }
  if(!!window.ActiveXObject || "ActiveXObject" in window){ 
    return { browser : "ie", version : "0"};     
  }
  var match = rFirefox.exec(ua);    
  if(match != null){    
    return { browser : "firefox", version : match[2] || "0" };    
  }
  var match = rOpera.exec(ua);    
  if(match != null){    
    return { browser : "opera", version : match[2] || "0" };    
  }
  var match = rChrome.exec(ua);    
  if (match != null){    
    return { browser:"chrome", version:match[2] || "0" };    
  }
  var match=rSafari.exec(ua);    
  if(match != null){    
    return { browser : "safari", version : match[1] || "0" };    
  }
  if(match != null){    
    return { browser : "", version : "0" };    
  } 
}

此函式可以返回一個物件直接量,裡面有兩個屬性,分別表示瀏覽器的型別和版本。

相關文章