欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取当前访问的浏览器类型--处理各个浏览器兼容

程序员文章站 2022-06-05 08:04:33
...
//判断当前访问浏览器  返回一个
/*
返回值类型
object{
		name:"chrome",version:5.0,isChrome:true
		}
*/
getBrowser() {
  const ua = navigator.userAgent.toLocaleLowerCase();
  const browser = {
    name: null,
    version: null
  };
  if (ua.match(/chrome/) != null) {
    // 360浏览器
    let _mime = (option, value) => {
      var mimeTypes = navigator.mimeTypes;
      for (var mt in mimeTypes) {
        if (mimeTypes[mt][option] === value) {
          return true;
        }
      }
      return false;
    };
    var is360Browser = _mime("type", "application/vnd.chromium.remoting-viewer");

    if (is360Browser ) {
      browser.is360Browser = true;
      browser.name = "360";
    } else {
      browser.isChrome = true;
      browser.name = "Chrome";
    }
  } else if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
    browser.isIE = true;
    browser.name = "IE";
    browser.version =
      ua.match(/msie ([\d.]+)/) != null
        ? ua.match(/msie ([\d.]+)/)[1]
        : ua.match(/rv:([\d.]+)/)[1];
  } else if (ua.match(/edge/) != null) {
    browser.isEdge = true;
    browser.name = "Edge";
  } else if (ua.match(/firefox/) != null) {
    // 火狐浏览器
    browser.isFirefox = true;
    browser.name = "FireFox";
  } else if (ua.match(/safari/) != null) {
    // safari浏览器
    browser.isSafari = true;
    browser.name = "Safari";
  } else if (ua.match(/ubrowser/) != null) {
    // UC浏览器
    browser.isUC = true;
    browser.name = "UC";
  } else if (ua.match(/opera|opr/) != null) {
    // 欧朋浏览器
    browser.isOpera = true;
    browser.name = "Opera";
  } else if (ua.match(/bidubrowser/) != null) {
    // 百度浏览器
    browser.isBaidu = true;
    browser.name = "Baidu";
  } else if (ua.match(/metasr/) != null) {
    // 搜狗浏览器
    browser.isSogou = true;
    browser.name = "Sogou";
  } else if (ua.match(/qqbrowse|tencenttraveler/)) {
    browser.isQQ = true;
    browser.name = "QQ";
  } else if (ua.match(/maxthon/) != null) {
    // 遨游浏览器
    browser.isMaxthon = true;
    browser.name = "Maxthon";
  }
  return browser;
}