我知道这不是最可靠的方法,但我真的没有太多其他选择。我基本上需要检测访问我网站的浏览器和版本。如果是某个浏览器/版本,它会显示一条消息。这是针对 TLS 问题,因此某些浏览器版本不会显示 https 页面。
无论如何,目前我有类似以下内容
function getBrowserInfo()
{
var ua = navigator.userAgent, tem,
M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if(/trident/i.test(M[1]))
{
tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE '+(tem[1] || '');
}
if(M[1]=== 'Chrome')
{
tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
}
M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
if((tem= ua.match(/version\/(\d+)/i))!= null)
M.splice(1, 1, tem[1]);
return M.join(' ');
}
var browserInfo = getBrowserInfo();
browserInfo = browserInfo.split(" ");
$(function () {
alert(browserInfo);
if(browserInfo[0] == 'Firefox' && browserInfo[1] < 27) {
alert("Firefox");
}
if(browserInfo[0] == 'Chrome' && browserInfo[1] < 22) {
alert("Chrome");
}
if(browserInfo[0] == 'IE' && browserInfo[1] < 11) {
alert("IE");
}
if(browserInfo[0] == 'Safari' && browserInfo[1] < 11) {
alert("Safari");
}
if(browserInfo[0] == 'Opera' && browserInfo[1] < 14) {
alert("Safari");
}
});
我关心的一件事是字符串的拆分,以防浏览器返回不同的格式。此外,我认为所有这些 if 语句都是多余的,但我想不出更有效的方法来做到这一点。
本质上,我正在寻找有关检测浏览器及其版本的最佳方法的建议,以便我可以为该浏览器显示自定义消息。
谢谢
最佳答案
您似乎在使用 jQuery。您可以使用 $.browser 检测浏览器版本,但从版本 1.9.1 开始不推荐使用该功能。
我建议使用这个支持浏览器类型和版本检测的 jQuery 插件: https://github.com/gabceb/jquery-browser-plugin
使用此插件,您可以使用此代码测试浏览器 vendor :
if($.browser.msie) {
alert('ie');
}
if($.browser.mozilla) {
alert('firefox');
}
...
如果你想检查浏览器的版本,你可以使用这个代码:
$.browser.version
关于Javascript - 检测浏览器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34286594/