【问题标题】:iOS update to 10.3.1 breaks HTML input elementiOS 更新到 10.3.1 会破坏 HTML 输入元素
【发布时间】:2017-09-09 19:16:04
【问题描述】:

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

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

现在它只打开相机而没有使用滚动的选项。这是别人见过的吗?有解决办法吗?

谢谢, 詹姆斯

【问题讨论】:

    标签: html ios safari


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      它只打开相机,因为您使用布尔属性capture。根据HTML Media Capture specification

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

      在本规范中,术语捕获控件类型是指一种特殊类型的文件选择器控件,它针对用户进行了优化,用于直接捕获接受属性指定的 MIME 类型的媒体,使用媒体捕获机制

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

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

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

      3年前有一个关于这种“文件输入控件”行为的讨论:HTML file input control with capture and accept attributes works wrong?你可以看到“当捕获属性存在时显示选项对话框”让人感到困惑。

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

      【讨论】:

        猜你喜欢
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        • 2014-10-12
        • 2018-01-04
        • 2015-02-14
        • 2018-10-11
        相关资源
        最近更新 更多