【问题标题】:Trigger file input dialog programatically on iOS 6在 iOS 6 上以编程方式触发文件输入对话框
【发布时间】:2012-10-09 18:13:33
【问题描述】:

如何在 iOS 6 上以编程方式为 DOM 中的输入元素触发选择文件对话框? (即使用 Javascript)

<input type="file" id="foo">

注意事项:

  • Mobile Safari 和 Safari 的行为似乎不同。我已经在 Safari 中使用 document.querySelector("input[type=file]").click() 让它工作了。
  • 如果它在本机点击处理程序中,即由用户启动,它似乎可以工作,但我想按意愿触发对话框。

【问题讨论】:

  • 你试过 focus() 吗?
  • document.querySelector('#foo').click(); 怎么样?
  • 我不相信你可以。只是因为它是文件的安全风险。我过去曾对此进行过研究,但实际上不鼓励开发人员对此进行控制。另一方面,有几种方法可以将文件元素“隐藏”在另一个元素之上,这样看起来就像用户单击了另一个元素,但实际上是在单击文件元素 - 有效地触发了对话框。
  • This 的答案似乎指向“否”,尽管并非特定于 Mobile Safari。

标签: javascript ios safari mobile-safari ios6


【解决方案1】:

经过更多研究,这似乎是不可能的。至少我还没有找到有效的方法。

我决定使用位于按钮顶部的&lt;input type='file'&gt; 来解决这个问题,不透明度为 0.01 以使按钮可见。

【讨论】:

  • 您是否注意到一个奇怪的行为,其中 有时 Safari 为用户提供了拍照或选择已拍摄照片的选择,但有时却没有?这一刻让我发疯:-)
  • DoH!我刚刚想通了 :-) 如果你给&lt;input&gt; 提供“多个”属性,你就可以访问存储的照片。如果没有“多个”,它也提供相机。
猜你喜欢
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多