当前位置: 首页 > 知识库问答 >
问题:

带有capture和accept属性的HTML文件输入控件工作错误吗?

童华池
2023-03-14

我有5个只有输入类型文件的代码示例:

1.(jsfiddle)

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

2.(jsfiddle)

<input type="file" accept="image/*" capture="camera">
<input type="file" capture="camera">
<input type="file" capture>

5.(jsfiddle)

<input type="file" accept="image/*">

测试设备:

  • 三星S3(Android 4.1.2)
  • 三星S3(Android 4.3)
  • 三星Galaxy Tab 2 7.0(Android 4.2.2)
  • 三星Note(Android 4.1.2)
  • iPhone 5(iOS 7.0.4)
  • Nexus 4(Android 4.4)
    null
--------------------------------------------------------------------------------
|devices/example   | Ch 1| Ch 2| Ch 3| Ch 4| Ch 5| MS 1| MS 2| MS 3| MS 4| MS 5| 
--------------------------------------------------------------------------------
|Samsung S3/4.1    |  N  |  N  |  P  |  P  |  W  |  W  |  N  |  P  |  P  |  W  |
--------------------------------------------------------------------------------
|Samsung S3/4.3    |  N  |  N  |  P  |  P  |  P  |  N  |  N  |  P  |  P  |  P  |
--------------------------------------------------------------------------------
|Samsung Galaxy Tab|  N  |  N  |  P  |  P  |  W  |  W  |  N  |  P  |  P  |  W  |
--------------------------------------------------------------------------------
|Samsung Note      |  N  |  N  |  P  |  P  |  W  |  W  |  N  |  P  |  P  |  W  |
--------------------------------------------------------------------------------
|iPhone 5          |  W  |  W  |  P  |  P  |  W  |  W  |  Y  |  P  |  P  |  W  |
--------------------------------------------------------------------------------
|Nexus 4           |  N  |  N  |  P  |  P  |  W  |  -  |  -  |  -  |  -  |  -  |
--------------------------------------------------------------------------------

正如您所看到的,我只能为所有浏览器使用上载文件+相机对话框

。但是在这种情况下没有capture属性,这让我很担心,Android4.3有一个问题。

  1. 表中的行为是否为true?Android 4.3的行为是bug吗?
  2. 我可以信任浏览器它将始终添加摄像头上传对话框没有捕获属性吗?(答案请添加证明链接)

多谢了。

附注。问题是特别的,但在我的网站上,我必须为用户提供访问它的图像和相机。此外,我认为我的表可以对任何人都有帮助,我也将搜索答案,并将在这里张贴我的答案,如果没有人回答。

共有1个答案

尉迟兴修
2023-03-14

这才是真正的答案。只需贴在这里供下一个用户使用:

实际上,当前的实现似乎根本不依赖于capture属性,而只依赖于type和accept属性:浏览器显示一个对话框,用户可以在该对话框中选择文件的位置,而不考虑capture属性。例如,iOS Safari依赖于图像和视频(而不是音频)的accept属性(而不是capture)。即使您不使用accept属性,浏览器也会让您在“拍摄照片或视频”和“选择现有”之间进行选择(感谢@firt指出了这一点)。

从这里

 类似资料:
  • 问题内容: 在html下实现文件上传非常简单,但我只是注意到可以将“ accept”属性添加到标记中。 此属性作为限制文件上传到图像等的方式有用吗?最好的使用方法是什么? 或者,是否有一种方法可以限制html文件输入标签的文件类型,最好在文件对话框中? 问题答案: 该属性非常有用。这提示浏览器仅显示当前允许的文件。尽管通常可以被用户覆盖,但默认情况下它可以帮助缩小用户的搜索范围,因此他们可以准确地

  • 问题内容: 然后,用户单击用户必须获得对话框。我正在使用此html属性和。但是在某些现代设备上,这不会发生。下面有代码示例和下表,说明其正常工作与否。代码示例在和中进行了测试。 TL; DR: 我只有5个代码示例: 1.() 2.() 3.() 4.() 5.() 测试设备: 三星S3(Android 4.1.2) 三星S3(Android 4.3) 三星Galaxy Tab 2 7.0(Andr

  • 我正在构建的应用程序的需求要求用户角色是动态的,它们将存储在数据库中,并且还将映射到应用程序的功能(表单),也存储在数据库中。 限制角色访问特定页面并不困难,但要求还规定表单输入必须根据角色进行定制,这意味着输入可以是强制性的或非强制性的、可见的或不可见的、只读的或不基于角色的。 我控制这些限制的方法是为每个角色创建一个属性文件,该文件将应用程序中所有表单的所有输入存储为键,并将一个长字符串存储为

  • 现在我正在使用EnvInject插件通过属性文件将我的环境变量插入到Jenkins作业中。 然而,现在我有第二个作业,它需要与第一个作业相同的环境变量,而不是一些我想通过另一个属性文件加载的额外变量。 我知道,可以通过EnvInject插件的属性内容编辑字段插入值,但我想将其保存在一个文件中,以便在作业之间共享。但似乎不可能在EnvInject插件中添加第二个属性文件。 有没有办法将多个属性文件注

  • 我在尝试获取json文件时出错。 Json: http://api.openweathermap.org/data/2.5/forecast/daily?q=94043 错误: 代码: json文件有问题,但我无法解决。谁能帮我? 谢谢!!

  • 问题内容: 我正在上传 音频 文件。 为此,我正在使用。因此,默认情况下,浏览器的“文件选择”对话框仅显示音频文件。但是,我不需要该对话框中的一个名为“所有文件”的选项。 (注意-也欢迎使用Javascript,jQuery和AngularJs的任何解决方案) 如何禁用/删除“所有文件”选项? 问题答案: 我认为这超出了浏览器的范围,并且更多取决于操作系统。但是,不管情况如何,我都不认为这是您应该