Detect Opera 15+ (it's a Chrome fork now)

(detected.opera only true for older Opera versions)
This commit is contained in:
Bryan Housel
2015-03-22 23:19:29 -04:00
parent 55c4fce55f
commit 2520b217a0
+16 -9
View File
@@ -333,24 +333,31 @@ iD.version = '1.7.0';
var ua = navigator.userAgent,
m = null;
m = ua.match(/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i); // IE11
m = ua.match(/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/i); // IE11+
if (m !== null) {
detected.browser = 'msie';
detected.version = m[1];
} else {
}
if (!detected.browser) {
m = ua.match(/(opr)\/?\s*(\.?\d+(\.\d+)*)/i); // Opera 15+
if (m !== null) {
detected.browser = 'Opera';
detected.version = m[2];
}
}
if (!detected.browser) {
m = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
if (m !== null) {
detected.browser = m[1];
detected.version = m[2];
m = ua.match(/version\/([\.\d]+)/i);
if (m !== null) {
detected.version = m[1];
}
} else {
detected.browser = navigator.appName;
detected.version = navigator.appVersion;
if (m !== null) detected.version = m[1];
}
}
if (!detected.browser) {
detected.browser = navigator.appName;
detected.version = navigator.appVersion;
}
// keep major.minor version only..
detected.version = detected.version.split(/\W/).slice(0,2).join('.');
@@ -363,7 +370,7 @@ iD.version = '1.7.0';
}
// Added due to incomplete svg style support. See #715
detected.opera = (detected.browser.toLowerCase() === 'opera');
detected.opera = (detected.browser.toLowerCase() === 'opera' && parseFloat(detected.version) < 15 );
detected.locale = navigator.language || navigator.userLanguage;