當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS判断当前使用的是哪个浏览器及其版本
生活随笔
收集整理的這篇文章主要介紹了
JS判断当前使用的是哪个浏览器及其版本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里關于如何判斷的就直接上代碼吧,看這里:
!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.uaParserJs=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){// UAParser.js v0.6.2// Lightweight JavaScript-based User-Agent string parser// https://github.com/faisalman/ua-parser-js//// Copyright 漏 2012-2013 Faisalman <fyzlman@gmail.com>// Dual licensed under GPLv2 & MIT(function (window, undefined) {'use strict';//// Constants/var EMPTY ? ? ? = '',UNKNOWN ? ? = '?',FUNC_TYPE ? = 'function',UNDEF_TYPE ?= 'undefined',OBJ_TYPE ? ?= 'object',MAJOR ? ? ? = 'major',MODEL ? ? ? = 'model',NAME ? ? ? ?= 'name',TYPE ? ? ? ?= 'type',VENDOR ? ? ?= 'vendor',VERSION ? ? = 'version',ARCHITECTURE= 'architecture',CONSOLE ? ? = 'console',MOBILE ? ? ?= 'mobile',TABLET ? ? ?= 'tablet';///// Helper//var util = {has : function (str1, str2) {return str2.toLowerCase().indexOf(str1.toLowerCase()) !== -1;},lowerize : function (str) {return str.toLowerCase();}};///// Map helper//var mapper = {rgx : function () {// loop through all regexes mapsfor (var result, i = 0, j, k, p, q, matches, match, args = arguments; i < args.length; i += 2) {var regex = args[i], ? ? ? // even sequence (0,2,4,..)props = args[i + 1]; ? // odd sequence (1,3,5,..)// construct object barebonesif (typeof(result) === UNDEF_TYPE) {result = {};for (p in props) {q = props[p];if (typeof(q) === OBJ_TYPE) {result[q[0]] = undefined;} else {result[q] = undefined;}}}// try matching uastring with regexesfor (j = k = 0; j < regex.length; j++) {matches = regex[j].exec(this.getUA());if (!!matches) {for (p in props) {match = matches[++k];q = props[p];// check if given property is actually arrayif (typeof(q) === OBJ_TYPE && q.length > 0) {if (q.length == 2) {if (typeof(q[1]) == FUNC_TYPE) {// assign modified matchresult[q[0]] = q[1].call(this, match);} else {// assign given value, ignore regex matchresult[q[0]] = q[1];}} else if (q.length == 3) {// check whether function or regexif (typeof(q[1]) === FUNC_TYPE && !(q[1].exec && q[1].test)) {// call function (usually string mapper)result[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;} else {// sanitize match using given regexresult[q[0]] = match ? match.replace(q[1], q[2]) : undefined;}} else if (q.length == 4) {result[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;}} else {result[q] = match ? match : undefined;}}break;}}if(!!matches) break; // break the loop immediately if match found}return result;},str : function (str, map) {for (var i in map) {// check if arrayif (typeof(map[i]) === OBJ_TYPE && map[i].length > 0) {for (var j = 0; j < map[i].length; j++) {if (util.has(map[i][j], str)) {return (i === UNKNOWN) ? undefined : i;}}} else if (util.has(map[i], str)) {return (i === UNKNOWN) ? undefined : i;}}return str;}};///// String map//var maps = {browser : {oldsafari : {major : {'1' : ['/8', '/1', '/3'],'2' : '/4','?' : '/'},version : {'1.0' ? : '/8','1.2' ? : '/1','1.3' ? : '/3','2.0' ? : '/412','2.0.2' : '/416','2.0.3' : '/417','2.0.4' : '/419','?' ? ? : '/'}}},device : {sprint : {model : {'Evo Shift 4G' : '7373KT'},vendor : {'HTC' ? ? ? : 'APA','Sprint' ? ?: 'Sprint'}}},os : {windows : {version : {'ME' ? ? ? ?: '4.90','NT 3.11' ? : 'NT3.51','NT 4.0' ? ?: 'NT4.0','2000' ? ? ?: 'NT 5.0','XP' ? ? ? ?: ['NT 5.1', 'NT 5.2'],'Vista' ? ? : 'NT 6.0','7' ? ? ? ? : 'NT 6.1','8' ? ? ? ? : 'NT 6.2','RT' ? ? ? ?: 'ARM'}}}};//// Regex map/var regexes = {browser : [[// Presto based/(opera\smini)\/((\d+)?[\w\.-]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Opera Mini/(opera\s[mobiletab]+).+version\/((\d+)?[\w\.-]+)/i, ? ? ? ? ? ? ? ?// Opera Mobi/Tablet/(opera).+version\/((\d+)?[\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Opera > 9.80/(opera)[\/\s]+((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Opera < 9.80], [NAME, VERSION, MAJOR], [/\s(opr)\/((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Opera Webkit], [[NAME, 'Opera'], VERSION, MAJOR], [// Mixed/(kindle)\/((\d+)?[\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Kindle/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?((\d+)?[\w\.]+)*/i,// Lunascape/Maxthon/Netfront/Jasmine/Blazer// Trident based/(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?((\d+)?[\w\.]*)/i,// Avant/IEMobile/SlimBrowser/Baidu/(?:ms|\()(ie)\s((\d+)?[\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Internet Explorer// Webkit/KHTML based/(rekonq)((?:\/)[\w\.]+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Rekonq/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron)\/((\d+)?[\w\.-]+)/i// Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron], [NAME, VERSION, MAJOR], [/(trident).+rv[:\s]((\d+)?[\w\.]+).+like\sgecko/i ? ? ? ? ? ? ? ? ? // IE11], [[NAME, 'IE'], VERSION, MAJOR], [/(yabrowser)\/((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Yandex], [[NAME, 'Yandex'], VERSION, MAJOR], [/(comodo_dragon)\/((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Comodo Dragon], [[NAME, /_/g, ' '], VERSION, MAJOR], [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?((\d+)?[\w\.]+)/i// Chrome/OmniWeb/Arora/Tizen/Nokia], [NAME, VERSION, MAJOR], [/(dolfin)\/((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Dolphin], [[NAME, 'Dolphin'], VERSION, MAJOR], [/((?:android.+)crmo|crios)\/((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? // Chrome for Android/iOS], [[NAME, 'Chrome'], VERSION, MAJOR], [/version\/((\d+)?[\w\.]+).+?mobile\/\w+\s(safari)/i ? ? ? ? ? ? ? ? // Mobile Safari], [VERSION, MAJOR, [NAME, 'Mobile Safari']], [/version\/((\d+)?[\w\.]+).+?(mobile\s?safari|safari)/i ? ? ? ? ? ? ?// Safari & Safari Mobile], [VERSION, MAJOR, NAME], [/webkit.+?(mobile\s?safari|safari)((\/[\w\.]+))/i ? ? ? ? ? ? ? ? ? // Safari < 3.0], [NAME, [MAJOR, mapper.str, maps.browser.oldsafari.major], [VERSION, mapper.str, maps.browser.oldsafari.version]], [/(konqueror)\/((\d+)?[\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Konqueror/(webkit|khtml)\/((\d+)?[\w\.]+)/i], [NAME, VERSION, MAJOR], [// Gecko based/(navigator|netscape)\/((\d+)?[\w\.-]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? // Netscape], [[NAME, 'Netscape'], VERSION, MAJOR], [/(swiftfox)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Swiftfox/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?((\d+)?[\w\.\+]+)/i,// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/((\d+)?[\w\.-]+)/i,// Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix/(mozilla)\/((\d+)?[\w\.]+).+rv\:.+gecko\/\d+/i, ? ? ? ? ? ? ? ? ? ?// Mozilla// Other/(uc\s?browser|polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|qqbrowser)[\/\s]?((\d+)?[\w\.]+)/i,// UCBrowser/Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/QQBrowser/(links)\s\(((\d+)?[\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Links/(gobrowser)\/?((\d+)?[\w\.]+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// GoBrowser/(ice\s?browser)\/v?((\d+)?[\w\._]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? // ICE Browser/(mosaic)[\/\s]((\d+)?[\w\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Mosaic], [NAME, VERSION, MAJOR]],cpu : [[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i ? ? ? ? ? ? ? ? ? ? // AMD64], [[ARCHITECTURE, 'amd64']], [/((?:i[346]|x)86)[;\)]/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// IA32], [[ARCHITECTURE, 'ia32']], [// PocketPC mistakenly identified as PowerPC/windows\s(ce|mobile);\sppc;/i], [[ARCHITECTURE, 'arm']], [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i ? ? ? ? ? ? ? ? ? ? ? ? ? // PowerPC], [[ARCHITECTURE, /ower/, '', util.lowerize]], [/(sun4\w)[;\)]/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// SPARC], [[ARCHITECTURE, 'sparc']], [/(ia64(?=;)|68k(?=\))|arm(?=v\d+;)|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i// IA64, 68K, ARM, IRIX, MIPS, SPARC, PA-RISC], [ARCHITECTURE, util.lowerize]],device : [[/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i ? ? ? ? ? ? ? ? ? ? ? ? // iPad/PlayBook], [MODEL, VENDOR, [TYPE, TABLET]], [/(hp).+(touchpad)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// HP TouchPad/(kindle)\/([\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Kindle/\s(nook)[\w\s]+build\/(\w+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Nook/(dell)\s(strea[kpr\s\d]*[\dko])/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Dell Streak], [VENDOR, MODEL, [TYPE, TABLET]], [/\((ip[honed]+);.+(apple)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // iPod/iPhone], [MODEL, VENDOR, [TYPE, MOBILE]], [/(blackberry)[\s-]?(\w+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // BlackBerry/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola)[\s_-]?([\w-]+)*/i,// BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Huawei/Meizu/Motorola/(hp)\s([\w\s]+\w)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // HP iPAQ/(asus)-?(\w+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Asus], [VENDOR, MODEL, [TYPE, MOBILE]], [/\((bb10);\s(\w+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // BlackBerry 10], [[VENDOR, 'BlackBerry'], MODEL, [TYPE, MOBILE]], [/android.+((transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+))/i ? ? ? // Asus Tablets], [[VENDOR, 'Asus'], MODEL, [TYPE, TABLET]], [/(sony)\s(tablet\s[ps])/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Sony Tablets], [VENDOR, MODEL, [TYPE, TABLET]], [/(nintendo)\s([wids3u]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Nintendo], [VENDOR, MODEL, [TYPE, CONSOLE]], [/((playstation)\s[3portablevi]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Playstation], [[VENDOR, 'Sony'], MODEL, [TYPE, CONSOLE]], [/(sprint\s(\w+))/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Sprint Phones], [[VENDOR, mapper.str, maps.device.sprint.vendor], [MODEL, mapper.str, maps.device.sprint.model], [TYPE, MOBILE]], [/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // HTC/(zte)-(\w+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// ZTE/(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i// Alcatel/GeeksPhone/Huawei/Lenovo/Nexian/Panasonic/Sony], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [// Motorola/\s((milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?))[\w\s]+build\//i,/(mot)[\s-]?(\w+)*/i], [[VENDOR, 'Motorola'], MODEL, [TYPE, MOBILE]], [/android.+\s((mz60\d|xoom[\s2]{0,2}))\sbuild\//i], [[VENDOR, 'Motorola'], MODEL, [TYPE, TABLET]], [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n8000|sgh-t8[56]9))/i], [[VENDOR, 'Samsung'], MODEL, [TYPE, TABLET]], [ ? ? ? ? ? ? ? ? ?// Samsung/((s[cgp]h-\w+|gt-\w+|galaxy\snexus))/i,/(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i,/sec-((sgh\w+))/i], [[VENDOR, 'Samsung'], MODEL, [TYPE, MOBILE]], [/(sie)-(\w+)*/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Siemens], [[VENDOR, 'Siemens'], MODEL, [TYPE, MOBILE]], [/(maemo|nokia).*(n900|lumia\s\d+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Nokia/(nokia)[\s_-]?([\w-]+)*/i], [[VENDOR, 'Nokia'], MODEL, [TYPE, MOBILE]], [/android\s3\.[\s\w-;]{10}((a\d{3}))/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Acer], [[VENDOR, 'Acer'], MODEL, [TYPE, TABLET]], [/android\s3\.[\s\w-;]{10}(lg?)-([06cv9]{3,4})/i ? ? ? ? ? ? ? ? ? ? // LG], [[VENDOR, 'LG'], MODEL, [TYPE, TABLET]], [/((nexus\s4))/i,/(lg)[e;\s-\/]+(\w+)*/i], [[VENDOR, 'LG'], MODEL, [TYPE, MOBILE]], [/(mobile|tablet);.+rv\:.+gecko\//i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Unidentifiable], [TYPE, VENDOR, MODEL]],engine : [[/(presto)\/([\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Presto/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, ? ? // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ?// KHTML/Tasman/Links/(icab)[\/\s]([23]\.[\d\.]+)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// iCab], [NAME, VERSION], [/rv\:([\w\.]+).*(gecko)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Gecko], [VERSION, NAME]],os : [[// Windows based/(windows)\snt\s6\.2;\s(arm)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Windows RT/(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], [NAME, [VERSION, mapper.str, maps.os.windows.version]], [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], [[NAME, 'Windows'], [VERSION, mapper.str, maps.os.windows.version]], [// Mobile/Embedded OS/\((bb)(10);/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// BlackBerry 10], [[NAME, 'BlackBerry'], VERSION], [/(blackberry)\w*\/?([\w\.]+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Blackberry/(tizen)\/([\w\.]+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Tizen/(android|webos|palm\os|qnx|bada|rim\stablet\sos|meego)[\/\s-]?([\w\.]+)*/i// Android/WebOS/Palm/QNX/Bada/RIM/MeeGo], [NAME, VERSION], [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i ? ? ? ? ? ? ? ? // Symbian], [[NAME, 'Symbian'], VERSION],[/mozilla.+\(mobile;.+gecko.+firefox/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Firefox OS], [[NAME, 'Firefox OS'], VERSION], [// Console/(nintendo|playstation)\s([wids3portablevu]+)/i, ? ? ? ? ? ? ? ? ? ?// Nintendo/Playstation// GNU/Linux based/(mint)[\/\s\(]?(\w+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Mint/(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk)[\/\s-]?([\w\.-]+)*/i,// Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware// Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/(hurd|linux)\s?([\w\.]+)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Hurd/Linux/(gnu)\s?([\w\.]+)*/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // GNU], [NAME, VERSION], [/(cros)\s[\w]+\s([\w\.]+\w)/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Chromium OS], [[NAME, 'Chromium OS'], VERSION],[// Solaris/(sunos)\s?([\w\.]+\d)*/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Solaris], [[NAME, 'Solaris'], VERSION], [// BSD based/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i ? ? ? ? ? ? ? ? ? // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly], [NAME, VERSION],[/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i ? ? ? ? ? ? // iOS], [[NAME, 'iOS'], [VERSION, /_/g, '.']], [/(mac\sos\sx)\s?([\w\s\.]+\w)*/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Mac OS], [NAME, [VERSION, /_/g, '.']], [// Other/(haiku)\s(\w+)/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// Haiku/(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // AIX/(macintosh|mac(?=_powerpc)|plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos)/i,// Plan9/Minix/BeOS/OS2/AmigaOS/MorphOS/RISCOS/(unix)\s?([\w\.]+)*/i ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// UNIX], [NAME, VERSION]]};/// Constructorvar UAParser = function (uastring) {var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY);if (!(this instanceof UAParser)) {return new UAParser(uastring).getResult();}this.getBrowser = function () {return mapper.rgx.apply(this, regexes.browser);};this.getCPU = function () {return mapper.rgx.apply(this, regexes.cpu);};this.getDevice = function () {return mapper.rgx.apply(this, regexes.device);};this.getEngine = function () {return mapper.rgx.apply(this, regexes.engine);};this.getOS = function () {return mapper.rgx.apply(this, regexes.os);};this.getResult = function() {return {ua ? ? ?: this.getUA(),browser : this.getBrowser(),engine ?: this.getEngine(),os ? ? ?: this.getOS(),device ?: this.getDevice(),cpu ? ? : this.getCPU()};};this.getUA = function () {return ua;};this.setUA = function (uastring) {ua = uastring;return this;};this.setUA(ua);};///// Export//// check js environment?if (typeof(exports) !== UNDEF_TYPE) {// nodejs envif (typeof(module) !== UNDEF_TYPE && module.exports) {exports = module.exports = UAParser;}exports.UAParser = UAParser;} else {// browser envwindow.UAParser = UAParser; ? ? ? ?// requirejs env (optional)if (typeof(define) === FUNC_TYPE && define.amd) {define(function () {return UAParser;});}// jQuery specific (optional)if (typeof(window.jQuery) !== UNDEF_TYPE) {var $ = window.jQuery;var parser = new UAParser();$.ua = parser.getResult();$.ua.get = function() {return parser.getUA();};$.ua.set = function (uastring) {parser.setUA(uastring);var result = parser.getResult();for (var prop in result) {$.ua[prop] = result[prop];}};}}})(this);},{}]},{},[1])(1)});接下來,保存這個文件為 ua-parser.js 用于引用,值得了解的是,我們應該如何調用這個插件,下面也給出了方案:
<div id="breakdown"></div><script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js" type="text/javascript"></script><script src="ua-parser.js"></script><script type="text/javascript">var UAParser = window.uaParserJs;var parser = new UAParser(navigator.userAgent);$('#breakdown').text(JSON.stringify(parser.getResult(), undefined, 2));</script> 這里用到了百度CDN提供的JQ庫,至于為啥要用這個,想必不用說了吧,好了,接下來你只需要所你搭建好的頁面放到各個瀏覽器測試就可以了,并根據你想要的屬性進行相應的跳轉總結
以上是生活随笔為你收集整理的JS判断当前使用的是哪个浏览器及其版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让你的PHP也能执行JS并获得JS函数的
- 下一篇: JS实例操作QQ空间自动点赞方法