在IE11浏览器Safari OSX 10.11上打开时,这不起作用。有什么问题?
var browser = '';
var browserVersion = 0;
if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
browser = 'Opera';
} else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
browser = 'MSIE';
} else if (/Navigator[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
browser = 'Netscape';
} else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
browser = 'Chrome';
} else if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
browser = 'Safari';
/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent);
browserVersion = new Number(RegExp.$1);
} else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
browser = 'Firefox';
}
if(browserVersion === 0){
browserVersion = parseFloat(new Number(RegExp.$1));
}
alert(browser + "*" + browserVersion);
输出:* 0仅
答案 0 :(得分:2)
根据此更改列表,IE11不再报告为MSIE, 它是故意避免错误检测。如果你真的想知道它,你可以做什么?IE是要检测到的 如果navigator.appName返回,则在用户代理中使用Trident / string Netscape,类似(未经测试的);
来自微软的更多信息:
https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx#TriToken
Trident / 7.0 IE11
Trident / 6.0 Internet Explorer 10
Trident / 5.0 Internet Explorer 9
Trident / 4.0 Internet Explorer 8
在Safari主题上,查看最新的userAgent字符串,它没有ver.ver,因此你的正则表达式失败了:
Safari 7.0.3
Mozilla / 5.0(Macintosh; Intel Mac OS X 10_9_3)AppleWebKit / 537.75.14(KHTML,与Gecko一样)Version / 7.0.3 { [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT @tmdbid' at line 1]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0 }
答案 1 :(得分:1)
如果您只需要浏览器名称,可以尝试使用此功能,这适用于最新的IE和Safari:
var BrowserDetect = function() {
var nav = window.navigator,
ua = window.navigator.userAgent.toLowerCase();
// Detect browsers (only the ones that have some kind of quirk we need to work around)
if ((nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null))
return "IE";
if (ua.match(/chrome/gi) !== null)
return "Chrome";
if (ua.match(/firefox/gi) !== null)
return "Firefox";
if (ua.match(/safari/gi) !== null)
return "Safari";
if (ua.match(/webkit/gi) !== null)
return "Webkit";
if (ua.match(/gecko/gi) !== null)
return "Gecko";
if (ua.match(/opera/gi) !== null)
return "Opera";
// If any case miss we will return null
return null
};