mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-11-21 01:26:40 +03:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4efb13be3e | ||
|
|
bf9fb794d8 | ||
|
|
df815d4109 | ||
|
|
6dcee61a0b | ||
|
|
0288766544 | ||
|
|
7ea79afc2f |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"title": "UA-Parser.JS",
|
||||
"name": "ua-parser-js",
|
||||
"version": "0.4.3",
|
||||
"version": "0.4.6",
|
||||
"author": "Faisal Salman <fyzlman@gmail.com> (http://faisalman.com)",
|
||||
"description": "Lightweight JavaScript-based user-agent string parser",
|
||||
"keywords": [
|
||||
|
||||
39
ua-parser.js
39
ua-parser.js
@@ -1,4 +1,4 @@
|
||||
// UA-Parser.JS v0.4.3
|
||||
// UA-Parser.JS v0.4.6
|
||||
// Lightweight JavaScript-based User-Agent string parser
|
||||
// https://github.com/faisalman/ua-parser-js
|
||||
//
|
||||
@@ -45,7 +45,7 @@
|
||||
if (typeof props[k] === 'object' && props[k].length === 2) {
|
||||
result[props[k][0]] = props[k][1];
|
||||
} else if (typeof props[k] === 'object' && props[k].length === 3) {
|
||||
if (typeof props[k][1] === 'function') {
|
||||
if (typeof props[k][1] === 'function' && !(props[k][1].exec && props[k][1].test)) {
|
||||
result[props[k][0]] = m ? props[k][1].call(this, m, props[k][2]) : undefined;
|
||||
} else {
|
||||
result[props[k][0]] = m ? m.replace(props[k][1], props[k][2]) : undefined;
|
||||
@@ -70,11 +70,11 @@
|
||||
if (typeof map[i] === 'object' && map[i].length > 0) {
|
||||
for (var j = 0; j < map[i].length; j++) {
|
||||
if (str.toLowerCase().indexOf(map[i][j].toLowerCase()) !== -1) {
|
||||
return i;
|
||||
return (i.toString() === 'undefined') ? undefined : i;
|
||||
}
|
||||
}
|
||||
} else if (str.toLowerCase().indexOf(map[i].toLowerCase()) !== -1) {
|
||||
return i;
|
||||
return (i.toString() === 'undefined') ? undefined : i;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,6 +83,25 @@
|
||||
};
|
||||
|
||||
var maps = {
|
||||
browser : {
|
||||
oldsafari : {
|
||||
major : {
|
||||
'1' : ['/85', '/125', '/312'],
|
||||
'2' : ['/412', '/416', '/417', '/419'],
|
||||
'undefined' : '/'
|
||||
},
|
||||
version : {
|
||||
'1.0' : '/85',
|
||||
'1.2' : '/125',
|
||||
'1.3' : '/312',
|
||||
'2.0' : '/412',
|
||||
'2.0.2' : '/416',
|
||||
'2.0.3' : '/417',
|
||||
'2.0.4' : '/419',
|
||||
'undefined' : '/'
|
||||
}
|
||||
}
|
||||
},
|
||||
os : {
|
||||
windows : {
|
||||
version : {
|
||||
@@ -124,9 +143,17 @@
|
||||
/(chrome|omniweb|arora|dolfin|[tizenoka]{5}\s?browser)\/((\d+)?[\w\.]+)/i,
|
||||
// Chrome/OmniWeb/Arora/Dolphin/Tizen/Nokia
|
||||
], ['name', 'version', 'major'], [
|
||||
|
||||
/(?:android.+(crmo|crios))\/((\d+)?[\w\.]+)/i, // Chrome for Android/iOS
|
||||
], [['name', 'Chrome'], 'version', 'major'], [
|
||||
/(mobile\ssafari|safari|konqueror)\/((\d+)?[\w\.]+)/i, // Safari/Konqueror
|
||||
|
||||
/version\/((\d+)?[\w\.]+).+(mobile\s?safari|safari)/i // Safari & Safari Mobile
|
||||
], ['version', 'major', 'name'], [
|
||||
|
||||
/applewebkit.+(mobile\s?safari|safari)((\/[\w\.]+))/i // Safari < 3.0
|
||||
], ['name', ['major', mapper.string, maps.browser.oldsafari.major], ['version', mapper.string, maps.browser.oldsafari.version]], [
|
||||
|
||||
/(konqueror)\/((\d+)?[\w\.]+)/i, // Konqueror
|
||||
/(applewebkit|khtml)\/((\d+)?[\w\.]+)/i,
|
||||
|
||||
// Gecko based
|
||||
@@ -264,7 +291,7 @@
|
||||
|
||||
var UAParser = function UAParser (uastring) {
|
||||
|
||||
var ua = uastring || (typeof window !== 'undefined' ? window.navigator.userAgent : "");
|
||||
var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : "");
|
||||
|
||||
this.getBrowser = function () {
|
||||
return mapper.regex.apply(this, regexes.browser);
|
||||
|
||||
Reference in New Issue
Block a user