Javascript 在iOS 6上以编程方式触发文件输入对话框

Javascript 在iOS 6上以编程方式触发文件输入对话框,javascript,ios,safari,mobile-safari,ios6,Javascript,Ios,Safari,Mobile Safari,Ios6,如何在iOS 6上以编程方式为DOM中的输入元素触发选择文件对话框?(即使用Javascript) 注: Mobile Safari和Safari的表现似乎有所不同。我已经使用document.querySelector(“input[type=file]”)使其正常工作。在safari中单击() 如果它在原生clickhandler中,即由用户启动,则它似乎可以工作,但我希望能够随意触发该对话框 经过更多的研究,这似乎是不可能的。至少我还没有找到一个有效的方法 我决定使用位于按钮顶部的解

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


注:

  • Mobile Safari和Safari的表现似乎有所不同。我已经使用
    document.querySelector(“input[type=file]”)使其正常工作。在safari中单击()
  • 如果它在原生clickhandler中,即由用户启动,则它似乎可以工作,但我希望能够随意触发该对话框

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


我决定使用位于按钮顶部的
解决这个问题,不透明度为0.01以使按钮可见。

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


我决定使用位于按钮顶部的
解决这个问题,不透明度为0.01以使按钮可见。

您尝试过焦点()吗?
document.querySelector('foo')。click()如何?我不相信你能。只是因为文件有安全隐患。我在过去研究过这一点,但实际上并不鼓励开发人员控制这一点。另一方面,有几种方法可以将文件元素“隐藏”在另一个元素的顶部,这样看起来就像用户单击了另一个元素,但实际上是在单击文件元素——有效地触发了对话框。答案似乎是否定的,尽管不是特定于Mobile Safari的。您是否尝试过focus()?关于
document.querySelector(“#foo”)。单击()?我不相信你能。只是因为文件有安全隐患。我在过去研究过这一点,但实际上并不鼓励开发人员控制这一点。另一方面,有几种方法可以将文件元素“隐藏”在另一个元素的顶部,这样看起来就像用户单击了另一个元素,但实际上是在单击文件元素——有效地触发了对话框。答案似乎是否定的,尽管不是特定于移动Safari。您是否注意到一种奇怪的行为,即Safari有时为用户提供拍照或选择已拍摄照片的选择,但有时却没有?现在我快发疯了:-)啊!我刚想出来:-)如果你给
赋予“multiple”属性,你就可以访问存储的照片。你是否注意到一种奇怪的行为,Safari有时为用户提供拍照或选择已拍摄的照片的选择,但有时却没有?现在我快发疯了:-)啊!我刚想出来:-)如果你给
赋予“multiple”属性,你就可以访问存储的照片。没有“多重”,它也提供了相机。
<input type="file" id="foo">