所以我知道{j} 1.3已经弃用了$.browser
并且“不赞成”,但它仍然存在&在代码中工作。
它仍然使用普通的javascript:navigator.userAgent
来确定正在使用的浏览器以及版本。
现在有一些关于这些我不了解导航器本身的东西,我不应该使用$.browser
或简单的vanilla JS来获取浏览器/版本?我只是想确保他们有IE8(例如),他们确实拥有它,而且我没有处理错误的代码。
我们对浏览器嗅探有什么其他选择?我知道$.support
,我使用modernizr
,但有时我只需要简单的浏览器版本,而不是看到浏览器能够处理什么(我认为这是一个完全不同的问题解决者)。
答案 0 :(得分:1)
你自己回答这个问题。理想的是检查功能支持。随着越来越多的浏览器和设备进入市场,这种方法应该扩展。
但是,如果你想做一些“沮丧和肮脏”的事情,那么浏览器检测当然有效,但只有你知道你的代码在现有的一组浏览器中工作(或者甚至只是那些你已经测试过的代码)用)。
答案 1 :(得分:1)
一般情况下,建议不要试图猜测浏览器是什么,而是检查功能是否可用。浏览器和变体太多了。
要检查某项功能是否可用,您只需执行以下操作:
if (!Array.prototype.map) {
// not available, shut down computer !
答案 2 :(得分:0)
如果“必须”知道我在页面上的哪个浏览器,我个人使用它;
(function() {
var re_browsers = {
firefox: /firefox\/([\d\.]+)/,
chrome: /chrome\/([\d\.]+)/,
safari: /webkit.*?version\/([\d\.]+)/,
opera: /opera.*?version\/([\d\.]+)/,
ie: /msie\s+([\d\.]+)/
// ...
};
var ua = window.navigator.userAgent.toLowerCase(), k, re, browser = {};
for (k in re_browsers) {
if (re = re_browsers[k].exec(ua)) {
break;
}
}
browser[k] = true;
browser["version"] = parseFloat(re && re[1]);
browser["versionOrig"] = re[1];
jQuery.extend({browser: browser});
})();