1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | (function (global, factory) {
|
9 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
10 | typeof define === 'function' && define.amd ? define(factory) :
|
11 | (global.lowBrowser = factory());
|
12 | }(this, (function () { 'use strict';
|
13 |
|
14 | |
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | var lowBrowser = function (userAgent) {
|
23 | var data = { userAgent: userAgent };
|
24 | var m;
|
25 |
|
26 | if (/Mac_PowerPC/i.test(userAgent)) {
|
27 | data.os = 'Mac_PowerPC';
|
28 | }
|
29 |
|
30 | if (/Mac OS X/i.test(userAgent)) {
|
31 | data.os = 'Mac OS X';
|
32 | }
|
33 |
|
34 | m = userAgent.match(/(Windows.*?)[;)]/i);
|
35 | if (m) {
|
36 | data.os = m[1].trim()
|
37 | .replace(/NT(\d)/i, 'NT $1')
|
38 | .replace(/(NT\s\d{1,2})$/i, '$1.0');
|
39 | }
|
40 |
|
41 | m = userAgent.match(/Trident[\/\s](\d+\.[\d\w]+)[;)]/i);
|
42 | if (m) {
|
43 | data.core = 'Trident';
|
44 | data.coreVersion = m[1].trim();
|
45 | }
|
46 |
|
47 | if (/rv:11\.0/i.test(userAgent) && data.core === 'Trident') {
|
48 | data.name = 'IE';
|
49 | data.version = '11.0';
|
50 | }
|
51 |
|
52 | var ieRegex = 'MSIE\\s(.*?)[;)]';
|
53 | m = userAgent.match(new RegExp(ieRegex, 'ig'));
|
54 | m = m ? m[m.length - 1].match(new RegExp(ieRegex, 'i')) : null;
|
55 | if (m) {
|
56 | data.name = 'IE';
|
57 | data.version = m[1].trim();
|
58 | }
|
59 |
|
60 | m = userAgent.match(/IEMobile[\/\s](\d+\.[\d\w]+)[;)]/i);
|
61 | if (m) {
|
62 | data.name = 'IEMobile';
|
63 | data.version = m[1].trim();
|
64 | }
|
65 |
|
66 | m = userAgent.match(/Edge[\/\s](.*?)\.(\d+)/i);
|
67 | if (m) {
|
68 | data.name = 'Edge';
|
69 | data.version = m[1].trim();
|
70 | var osBuild = +m[2];
|
71 | if (osBuild) {
|
72 | data.osBuild = osBuild;
|
73 | }
|
74 | data.core = 'EdgeHTML';
|
75 | data.coreVersion = (data.version) + "." + (osBuild || 0);
|
76 | }
|
77 |
|
78 | if (/Xbox/i.test(userAgent)) {
|
79 | data.gamePlatform = /Xbox\sOne/i.test(userAgent)
|
80 | ? 'Xbox One'
|
81 | : 'Xbox 360';
|
82 | }
|
83 | return data;
|
84 | };
|
85 |
|
86 | return lowBrowser;
|
87 |
|
88 | })));
|
89 |
|