Javascript 如何测试浏览器是否支持<;输入捕获/>;

Javascript 如何测试浏览器是否支持<;输入捕获/>;,javascript,html,browser,Javascript,Html,Browser,如何测试当前浏览器是否支持移动浏览器使用设备摄像头拍照的功能 在所有桌面浏览器中,捕获基本上被忽略: 如何检测是否可以使用capture(它不会显示打开的文件对话框,但会实际打开图片应用程序)?您可以在JS中创建输入元素并测试capture属性。如果不支持,它将是未定义的 var el=document.createElement('input')) 支持的变量=el.capture!=未定义 console.log('支持捕获:'+supported)您可以使用以下功能: function

如何测试当前浏览器是否支持移动浏览器使用设备摄像头拍照的功能

在所有桌面浏览器中,捕获基本上被忽略:


如何检测是否可以使用capture(它不会显示打开的文件对话框,但会实际打开图片应用程序)?

您可以在JS中创建输入元素并测试
capture
属性。如果不支持,它将是未定义的

var el=document.createElement('input'))
支持的变量=el.capture!=未定义

console.log('支持捕获:'+supported)
您可以使用以下功能:

function supported(attribute) {
   var i = document.createElement('input');
   i.setAttribute(attribute, true);
   return !!i[attribute];
}
您可以调用它,比如
supported('capture')
,或者如果您想测试
accept
属性
supported('accept')

来源:


理论上,如果您将该属性添加到HTML中,您应该能够检查JavaScript中
input
元素的
capture
属性。如果它不是
未定义的
,则受支持。您可以使用Modernizr.js-请参阅此处的文档:注意这是行为,即:“捕获IDL属性必须反映相同名称的相应内容属性”。这一规定是为大多数属性定义的,您可以随时知道,通过检查相应属性的值(如果支持的话)。图像捕获的功能表明它仍然可以打开一个文件对话框,但该对话框可以包括一个“相机”按钮,用于从拾取文件切换。它可以正常工作,但如果我在Angular 9中使用Typescript 3.8,它将无法正常工作。。。如果我将属性
capture
设置为一个元素,那么不管它是否受支持,它都会被设置(