返回 导航

其他

hangge.com

JS - 获取用户浏览器类型、版本号 (附样例)

作者:hangge | 2019-02-26 08:02
   navigator.userAgent 是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。我们可以使用它来检测浏览器信息。

1,封装一个 browser() 方法

为了方便使用,这里创建一个方法来返回浏览器的检查结果。返回结果包含有如下属性:
  • webkitwebkit 版本号。如果浏览器为非 webkit 内核,此属性为 undefined
  • chromechrome 浏览器版本号。如果浏览器为 chrome,此属性为 undefined
  • ieie 浏览器版本号。如果浏览器为非 ie,此属性为 undefined。暂不支持 ie10+
  • firefoxfirefox 浏览器版本号。如果浏览器为非 firefox,此属性为 undefined
  • safarisafari 浏览器版本号。如果浏览器为非 safari,此属性为 undefined
  • operaopera 浏览器版本号。如果浏览器为非 opera,此属性为 undefined
// 浏览器检查结果
function browser() {
  var ua = navigator.userAgent;
  var ret = {},
      webkit = ua.match( /WebKit\/([\d.]+)/ ),
      chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
          ua.match( /CriOS\/([\d.]+)/ ),

      ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
          ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
      firefox = ua.match( /Firefox\/([\d.]+)/ ),
      safari = ua.match( /Safari\/([\d.]+)/ ),
      opera = ua.match( /OPR\/([\d.]+)/ );

  webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
  chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
  ie && (ret.ie = parseFloat( ie[ 1 ] ));
  firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
  safari && (ret.safari = parseFloat( safari[ 1 ] ));
  opera && (ret.opera = parseFloat( opera[ 1 ] ));
  return ret;
}

2,使用样例

console.log(browser());
评论

全部评论(0)

回到顶部