3

您可能已经知道,最新版本的 jQuery 移除了$.browser支持。我需要知道用户是否使用 Firefox 3.6 或更低版本。有什么方法可以检测到使用可用功能而不是查看用户代理?

我们需要这种检测的原因是我们使用另一个元素设置上传按钮的样式,然后触发对不可见上传元素的点击。这不适用于 FF <= 3.6。

澄清

  1. 在上传时触发事件$('#uploader').trigger('click')是行不通的
  2. 我不想看用户代理就知道是这种情况,尽管说这是唯一的方法可能是一个可以接受的答案
  3. 我不知道这个“功能”是什么来检测它
4

2 回答 2

3

是的,实际上特征检测是推荐的方法,而不是用户代理检测。(因此为什么 jQuery 放弃了这个$.browser功能)

FF3.6 没有很多功能,但您的主要目标应该是检测您特别需要使用的功能。

不要试图根据特性来判断浏览器是否为FF3.6;那只是破坏了特征检测的全部意义。如果你这样做,你也可以做UA检测。

您需要做的就是弄清楚您的网站正在使用哪些功能(您没有提到任何关于您的网站的内容,所以我只能在这里猜测)。然后为您正在使用的任何功能执行检测脚本,如果它们不存在会破坏您的站点,并让站点在发现缺少的功能时采取相应的行动。(这可能是警告用户该网站将无法运行,加入替代方案或加载 polyfill ......您所做的确切内容取决于该功能是什么以及您的网站用它做什么)

PS - 您可能想查看Modernizr库以获得更多关于特征检测的帮助。

希望有帮助。

[编辑]

您提到了文件上传功能......也许这里的答案可能会有所帮助?

于 2013-08-06T14:18:58.383 回答
0

浏览器检测不是推荐的技术 - 看看这个: 浏览器检测与特征检测

于 2013-08-06T14:15:43.953 回答