为什么$.brower被弃用?还有什么更好的替代方案
Why is $.browser deprecated - and what is a better alternative?
所以我知道$.browser
自jQuery 1.3以来一直被弃用,"不受欢迎",但它仍然存在&在代码中工作。
它仍然使用简单的javascript:navigator.userAgent
来确定正在使用的浏览器以及版本。
现在是不是有一些我对导航器本身不了解的东西,我不应该使用$.browser
或普通JS来获得浏览器/版本?我只想确保当他们有IE8(例如)时,他们真的有,而且我没有处理错误的代码。
对于浏览器嗅探,我们还有哪些其他选择我知道$.support
,我使用modernizr
,但有时我只需要一个破旧的浏览器版本,而不是看看浏览器能处理什么(我认为这是一个完全不同的问题解决方案)。
你可以自己回答这个问题。理想情况是检查功能支持。随着越来越多的浏览器和设备进入市场,这种方法应该会扩大规模。
然而,如果你想做一些"肮脏"的事情,那么浏览器检测当然有效,但前提是你知道你的代码在现有的浏览器中有效(甚至只是你测试过代码的浏览器)。
通常建议不要猜测浏览器是什么,而是检查功能是否可用。浏览器和变体太多了。
要检查功能是否可用,只需执行以下操作:
if (!Array.prototype.map) {
// not available, shut down computer !
如果"必须"为我知道页面上的哪个浏览器,我会亲自使用它;
(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});
})();
相关文章:
- 在JavaScript中拆分日期字符串的更好方法是什么
- 为什么$.brower被弃用?还有什么更好的替代方案
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 什么更好?使用iframe或jQuery之类的东西在外部网站中加载HTML文件
- 有什么比document.execCommand更好的东西吗
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 什么对性能更好:每个元素的事件或一个具有委派的事件
- 什么时候拥有更多或更少的html元素更好
- 拥有独特的用户房间的更好方法是什么
- 什么是上下文中静态类型javascript的示例,以更好地进行单元测试
- 组织对象原型的更好方法是什么
- 在HTML中使用JS的更好方法是什么?函数或选择器
- 编写此 Javascript 悬停函数的更好方法是什么?
- 设置mongo的更好方法是什么
- 当有更好的方法时,使用 setAttribute 方法有什么意义
- 在HTML中显示显示缩进的日志的更好方法是什么
- 通过ssl请求传递凭据是不安全的,什么'是更好的(KISS)解决方案
- 与许多事件侦听器和函数引用一个对象相比,什么是更好的方法
- 什么'这是在另一个文件中调用JavaScript函数的更好方法
- PHP-语言切换-MVC框架-会话还是基于Javascript(i18next库)?什么更好