【问题标题】:Workaround for file input label click (Firefox) - jQuery 1.9文件输入标签点击的解决方法 (Firefox) - jQuery 1.9
【发布时间】:2013-02-20 01:02:56
【问题描述】:

首先,这非常类似于: Workaround for file input label click (Firefox)

但提供的解决方案在 jQuery 1.9+ 中不起作用

$.browser 变量不再存在,因为现在我们必须执行feature detection

我非常想检测我需要的功能,但在 jQuery 中似乎没有这样的支持。 浏览器检测不见了,功能检测似乎无法检测到我需要的东西,有没有好的解决方案? Modernizr 解决方案也将受到赞赏,并且也接受 plain-vanilla-js 解决方案

感谢您的帮助。

【问题讨论】:

  • 如果你的意思是颠倒顺序,那不是解决办法。
  • 我的意思是使用标签点击 -> 输入点击触发解决方案,但这会导致在其他浏览器中出现双文件对话框。我想不出一种方法来检测对此的支持,所以我建议只查看用户代理并检测存在此问题的特定浏览器和版本。

标签: javascript jquery firefox input label


【解决方案1】:
if ( window.mozIndexedDB !== undefined ) {
   //do firefox things
}

这只会在 Firefox 中返回 true,afaik。

示例测试:

if ( window.mozIndexedDB !== undefined ) {
   alert('You are using Firefox');
}

您可以尝试查看 window.navigator.userAgent 但我不推荐它,许多其他浏览器都标识为 Mozilla,请参阅此问题以获取一些示例:Why Does “navigator.userAgent” in javaScript returns the String “Mozilla” when tried in a google chrome borwser?

【讨论】:

  • 我的 Firefox 在访问 window.Mozilla 时返回 undefined
  • 这比navigator.userAgent.indexOf('Firefox')!==-1好吗?
  • 如果它们都到位且正确,则没有实际区别,但有些设备会发送奇怪的用户代理信息。
【解决方案2】:

不是最佳做法,但您为什么不试试jQuery Migrate plugin?它带回了 $.browser,以及其他一些已删除的功能。

【讨论】:

  • 因为这是另一个 16.7kb 只是为了检查这是否是一个 firefox 浏览器。
猜你喜欢
  • 2011-12-06
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2011-05-16
相关资源
最近更新 更多