如何通过触发元素上的单击事件来检测触发上载的能力

时间:2013-08-06 14:12:16

标签: javascript jquery

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

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

澄清

  1. 触发上传内容,如$('#uploader').trigger('click'),这是不起作用的
  2. 我不想看用户代理知道这种情况,虽然说这是唯一的方法可能是一个可接受的答案
  3. 我不知道这个“功能”是什么来检测它

2 个答案:

答案 0 :(得分:3)

是的,事实上,功能检测是推荐的方法,而不是用户代理检测。 (因此jQuery删除了$.browser功能)

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

不要试图根据功能确定浏览器是否为FF3.6;这只是打败了特征检测的全部要点。如果你这样做,你也可以进行UA检测。

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

PS - 您可能需要查看Modernizr库以获取有关特征检测的更多帮助。

希望有所帮助。

[编辑]

您提到了文件上传功能......也许the answers here可能有帮助吗?

答案 1 :(得分:0)

浏览器检测不是推荐的技术 - 看看这个: Browser detection versus feature detection