无法使用Modernizr检测浏览器

时间:2014-04-28 05:32:14

标签: jquery modernizr

我最近将我的所有项目jquery都看到了最新版本,当我听到$.browser被弃用并从最新的jquery版本中删除时,我遇到了障碍

所以我决定使用现代化器来实现同样的目标,但我不知何故无法获得浏览器 当我在控制台上运行此$.browser时,我得到未定义的对象

以下是描述相同

JSFIDDLE输出

我做错了什么

2 个答案:

答案 0 :(得分:1)

使用Modernizer,您可以检查所选浏览器中是否有HTML5的某些功能。它不是一个可以带回$.browser

的库

如果您需要带回$.browser,可以使用:https://github.com/gabceb/jquery-browser-plugin

答案 1 :(得分:1)

浏览器检测功能检测

Why is browser sniffing not a recommended practice?

我建议你研究功能检测,以及它为什么比浏览器检测浏览器嗅探更好。 This article on the jQuery learning center解释了这两种技术,以及为什么特征检测优于浏览器检测。

总结一下,引用我引用的文章:

浏览器检测

  

浏览器检测是检查浏览器的用户代理(UA)字符串的方法   浏览器系列或版本所特有的特定模式。

特征检测

  

特定功能检测检查特定功能是否可用,而不是   针对特定浏览器进行开发。这样,开发人员就可以编写自己的   两种情况的代码:浏览器支持支持所述功能,或浏览器   不支持支持此功能。

虽然浏览器检测似乎是一个简单的解决方案,但有几个问题:

  • 目标以外的其他浏览器可能存在同样的问题。 如果我们针对不同功能定位特定浏览器,我们会隐式地 排除我们未考虑的任何浏览器。

  • 用户代理不可靠。 用户代理由客户端浏览器设置,也可由用户配置。而 用户可以更改此字符串,浏览器的功能支持保持不变。


正如@Garath对他的回答所说,我建议你modernizr作为特征检测库。您还可以查看jQuery.support,但jQuery团队不建议将其用于jQuery的内部使用。