js分辨浏览器类别和版本

function BrowserInfo() {

  var ua = navigator.userAgent.toLowerCase();

  var Sys = {};

  var s;

  (s = ua.match(/msie ([d.]+)/)) ? Sys.ie = s[1] : (s = ua

      .match(/Trident/(d+)/i)) ? Sys.ie11 = s[1] : (s = ua

      .match(/edge.([d.]+)/)) ? Sys.edge = s[1] : (s = ua

      .match(/opera.([d.]+)/)) ? Sys.opera = s[1] : (s = ua

      .match(/opr.([d.]+)/)) ? Sys.opera = s[1] : (s = ua

      .match(/firefox/([d.]+)/)) ? Sys.firefox = s[1] : (s = ua

      .match(/chrome/([d.]+)/)) ? Sys.chrome = s[1] : (s = ua

      .match(/version/([d.]+).*safari/)) ? Sys.safari = s[1] : 0;

  var mBrowserInfo = {};

  if (Sys.ie) {

    mBrowserInfo.name = "IE";

    mBrowserInfo.version =  parseInt(Sys.ie);

  } else if (Sys.ie11) {

    mBrowserInfo.name = "IE";

    mBrowserInfo.version = 11;

  } else if (Sys.firefox) {

    mBrowserInfo.name = "Firefox";

    mBrowserInfo.version = Sys.firefox;

  } else if (Sys.chrome) {

    mBrowserInfo.name = "Chrome";

    mBrowserInfo.version = Sys.chrome;

  } else if (Sys.opera) {

    mBrowserInfo.name = "Opera";

    mBrowserInfo.version = Sys.opera;

  } else if (Sys.safari) {

    mBrowserInfo.name = "Safari";

    mBrowserInfo.version = Sys.safari;

  } else if (Sys.edge) {

    mBrowserInfo.name = "Edge";

    mBrowserInfo.version = Sys.edge;

  } else {

    //默认Chrome

    mBrowserInfo.name = "Chrome";

    mBrowserInfo.version = 0;

  }

  return  mBrowserInfo;

}

原文地址:https://www.cnblogs.com/car1900/p/5871041.html