iOS更新到10.3.1会破坏HTML输入元素

时间:2017-04-13 15:20:47

标签: html ios safari

我们有一个主要由iPad使用的网站(不是适用于iPad的应用程序),显然刚刚发布的更新导致输入问题。我们有一个HTML输入,用于允许他们从保存的图片中进行选择:

        <input class="fileInput" type="file" name="file" accept="image/*" capture>

现在它只打开相机而无法使用卷筒。这是别人见过的东西吗?有解决方法吗?

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:9)

它只打开相机,因为你使用布尔属性{ read line // do something with $line ... read line2 // do something with $line2 ... } < "$filename" 。根据{{​​3}}:

  

capture ...如果指定,则表示使用媒体捕获机制直接从设备环境捕获媒体。指定capture属性后,用户代理应调用特定捕获控制类型的文件选择器。

     

在本规范中,术语捕获控制类型是指为用户优化的文件选择器控件的专用类型,用于直接捕获由accept属性指定的MIME类型的媒体,使用媒体捕获机制

     

术语媒体捕获机制是指设备的本地媒体捕获设备,例如相机或麦克风。

对于您的情况,最好使用capture而不是<input>,根据HTML Media Capture specification,似乎提供选项是一种常见的浏览器行为:

  

用户代理可以使用此属性的值(接受)来显示比通用文件选择器更合适的用户界面。例如,给定值image / *,用户代理可以为用户提供使用本地相机或从他们的照片集中选择照片的选项;

3年前有一个关于此“文件输入控件”行为的讨论:HTML specification您可以看到“当捕获属性存在时显示选项对话框”会让人感到困惑。

在我看来,10.3.1中的iOS更改是文件输入控件的修复。否则,使用capture属性没有区别。

答案 1 :(得分:1)

我一直在调试同样的问题。我完全删除了像shaochuancs建议的捕获属性,解决了无法在iOS 10.3.1中选择相机或相机胶卷的问题。