其他分享
首页 > 其他分享> > js获取浏览器版本

js获取浏览器版本

作者:互联网

js获取浏览器版本

返回值格式如“chrome 88.0.4324.190”,浏览器包括IE、OLD_IE、Edge、firefox、Opera、Safari、QQ、火狐、微信。Chrome,其他未涉及到的可以根据“agent”字段自定义,需要注意的一点是,一个浏览器的userAgent有多个类型,例如QQ和火狐都包括chrome,所以需要注意研究下userAgent做判断

function getBrowserInfo() {
  let agent = navigator.userAgent.toLowerCase();
  console.log(agent);
  // let system = agent.split(' ')[1].split(' ')[0].split('(')[1];
  let REGSTR_EDGE = /edge\/[\d.]+/gi;
  let REGSTR_IE = /trident\/[\d.]+/gi;
  let OLD_IE = /msie\s[\d.]+/gi;
  let REGSTR_FF = /firefox\/[\d.]+/gi;
  let REGSTR_CHROME = /chrome\/[\d.]+/gi;
  let REGSTR_SAF = /safari\/[\d.]+/gi;
  let REGSTR_OPERA = /opr\/[\d.]+/gi;
  let REGSTR_QQ = /qqbrowser\/[\d.]+/gi;
  let REGSTR_METASR = /metasr\+/gi;
  let REGSTR_WECHAT = /MicroMessenger\/[\d.]+/gi;

  if (agent.indexOf('trident') > 0) {
    // IE
    return agent.match(REGSTR_IE)[0].split('/')[0] + ' ' + agent.match(REGSTR_IE)[0].split('/')[1];
  } else if (agent.indexOf('msie') > 0) {
    // OLD_IE
    return agent.match(OLD_IE)[0].split('/')[0] + ' ' + agent.match(OLD_IE)[0].split('/')[1];
  } else if (agent.indexOf('edge') > 0) {
    // Edge
    return agent.match(REGSTR_EDGE)[0].split('/')[0] + ' ' + agent.match(REGSTR_EDGE)[0].split('/')[1];
  } else if (agent.indexOf('firefox') > 0) {
    // firefox
    return  agent.match(REGSTR_FF)[0].split('/')[0] + ' ' + agent.match(REGSTR_FF)[0].split('/')[1];
  } else if (agent.indexOf('opr') > 0) {
    // Opera
    return  agent.match(REGSTR_OPERA)[0].split('/')[0] + ' ' + agent.match(REGSTR_OPERA)[0].split('/')[1];
  } else if (agent.indexOf('safari') > 0 && agent.indexOf('chrome') < 0) {
    // Safari
    return  agent.match(REGSTR_SAF)[0].split('/')[0] + ' ' + agent.match(REGSTR_SAF)[0].split('/')[1];
  } else if (agent.indexOf('qqbrowse') > 0) {
    // qqbrowse
    return  agent.match(REGSTR_QQ)[0].split('/')[0] + ' ' + agent.match(REGSTR_QQ)[0].split('/')[1];
  } else if (agent.indexOf('metasr') > 0) {
    // metasr火狐
    return 'metasr';
  } else if (agent.indexOf('micromessenger') > 0) {
    // 微信内置浏览器
    return  agent.match(REGSTR_WECHAT)[0].split('/')[0] + ' ' + agent.match(REGSTR_WECHAT)[0].split('/')[1];
  } else if (agent.indexOf('chrome') > 0) {
    // Chrome
    return  agent.match(REGSTR_CHROME)[0].split('/')[0] + ' ' + agent.match(REGSTR_CHROME)[0].split('/')[1];
  } else {
    return '未获取到浏览器信息';
  }
}

参考资料:
https://blog.csdn.net/xuaner8786/article/details/107084777

标签:浏览器,indexOf,agent,js,let,split,版本,REGSTR,match
来源: https://blog.csdn.net/qq_37800258/article/details/115010734