Compare commits

..

6 Commits

Author SHA1 Message Date
Faisal Salman
4efb13be3e Return unidentified version as undefined 2012-11-02 18:22:06 +07:00
Faisal Salman
bf9fb794d8 Fix issue #3 for old Safari < 3.0 2012-11-02 17:41:29 +07:00
Faisal Salman
df815d4109 Merge pull request #3 from cadecairos/safari-fix
Fix Safari version detection
2012-11-01 23:50:15 -07:00
Christopher De Cairos
6dcee61a0b Fix Safari version detection 2012-11-01 17:11:07 -04:00
Faisal Salman
0288766544 Check if userAgent property is defined 2012-10-23 17:35:24 +07:00
Faisal Salman
7ea79afc2f Fix issue #2 2012-10-22 16:04:23 +07:00
2 changed files with 70 additions and 43 deletions

View File

@@ -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": [

View File

@@ -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);