文章内容

2018/8/17 13:41:45,作 者: 黄兵

客户端浏览器版本

检测客户端浏览器版本:

var AGENT = navigator.userAgent;
var BROWSERS = {
  isMac:       (navigator.platform.substr(0,3) === "Mac"),
  isPC:        (navigator.platform.substr(0,3) === "Win"),
  isMSIE:      ("ActiveXObject" in window && "clipboardData" in window),
  isEdge:      ("MSGestureEvent" in window && "chrome" in window &&
                   window.chrome.loadTimes == null),
  isFirefox:   (!!AGENT.match(/Gecko\//) && !AGENT.match(/like Gecko/)),
  isSafari:    (!!AGENT.match(/ (Apple)?WebKit\//) && !AGENT.match(/ like iPhone /) &&
                   (!window.chrome || window.chrome.app == null)),
  isChrome:    ("chrome" in window && window.chrome.loadTimes != null),
  isOpera:     ("opera" in window && window.opera.version != null),
  isKonqueror: ("konqueror" in window && navigator.vendor == "KDE"),
  versionAtLeast: function (v) {
    var bv = (this.version).split('.'); v = (new String(v)).split('.');
    for (var i = 0, m = v.length; i < m; i++)
      {if (bv[i] != v[i]) {return parseInt(bv[i]||"0") >= parseInt(v[i])}}
    return true;
  },
  Select: function (choices) {
    var browser = choices[HUB.Browser];
    if (browser) {return browser(HUB.Browser)}
    return null;
  }
};

var xAGENT = AGENT
  .replace(/^Mozilla\/(\d+\.)+\d+ /,"")                                   // remove initial Mozilla, which is never right
  .replace(/[a-z][-a-z0-9._: ]+\/\d+[^ ]*-[^ ]*\.([a-z][a-z])?\d+ /i,"")  // remove linux version
  .replace(/Gentoo |Ubuntu\/(\d+\.)*\d+ (\([^)]*\) )?/,"");               // special case for these

HUB.Browser = HUB.Insert(HUB.Insert(new String("Unknown"),{version: "0.0"}),BROWSERS);
for (var browser in BROWSERS) {if (BROWSERS.hasOwnProperty(browser)) {
  if (BROWSERS[browser] && browser.substr(0,2) === "is") {
    browser = browser.slice(2);
    if (browser === "Mac" || browser === "PC") continue;
    HUB.Browser = HUB.Insert(new String(browser),BROWSERS);
    var VERSION = new RegExp(
      ".*(Version/| Trident/.*; rv:)((?:\\d+\\.)+\\d+)|" +                      // for Safari, Opera10, and IE11+
      ".*("+browser+")"+(browser == "MSIE" ? " " : "/")+"((?:\\d+\\.)*\\d+)|"+  // for one of the main browsers
      "(?:^|\\(| )([a-z][-a-z0-9._: ]+|(?:Apple)?WebKit)/((?:\\d+\\.)+\\d+)");  // for unrecognized browser
    var MATCH = VERSION.exec(xAGENT) || ["","","","unknown","0.0"];
    HUB.Browser.name = (MATCH[1] != "" ? browser : (MATCH[3] || MATCH[5]));
    HUB.Browser.version = MATCH[2] || MATCH[4] || MATCH[6];
    break;
  }
}};


分享到:

发表评论

评论列表