Input 如何添加modernizr build以便正确检查modernizr.capture?(当前始终未定义)
我需要检查用户的设备是否可以从我网站上的摄像头输入。为了做到这一点,我正在尝试使用Modernizer。我遵循了他们网站上提供的步骤/示例代码,但当我测试Input 如何添加modernizr build以便正确检查modernizr.capture?(当前始终未定义),input,camera,modernizr,Input,Camera,Modernizr,我需要检查用户的设备是否可以从我网站上的摄像头输入。为了做到这一点,我正在尝试使用Modernizer。我遵循了他们网站上提供的步骤/示例代码,但当我测试capture属性时,无论我是否在支持capture的设备上,我总是未定义 我采取了以下步骤: 然而,在所有这些之后,当在chrome inspector中检查Modernizer.capture 我的基本检查功能如下: $scope.hasCamera = function() { if (Modernizr.c
capture
属性时,无论我是否在支持capture
的设备上,我总是未定义
我采取了以下步骤:
然而,在所有这些之后,当在chrome inspector中检查Modernizer.capture
我的基本检查功能如下:
$scope.hasCamera = function() {
if (Modernizr.capture) {
// supported
return true;
} else {
// not-supported
return false;
}
}
这是我第一次使用Modernizer。我是否遗漏了一步或做了一些不正确的事情?我还使用npm安装安装了modernizr,并尝试从命令行向json配置文件添加引用
或者,我如何检查我的设备是否有摄像头
非常感谢您抽出时间。如果我不清楚或者您需要我提供更多信息,请告诉我。一些事情
$scope.hasCamera
设置为等于modernizer.capture
的结果,并使用函数检查modernizer.capture
的值,如果为真,则返回true
。如果为false,则返回false
。有相当多的重复逻辑,所以我们可以从内到外分解它modernizer.capture
$scope.hasCamera = function() {
return Modernizr.capture
}
虽然Modernizr始终会给您一个布尔值(当它运行时-没有看到您的实际代码,我无法说明为什么它会返回为未定义),但如果您不确定可以添加的值将其强制为布尔值。在您的情况下,它会将undefined
变成false
$scope.hasCamera = function() {
return !!Modernizr.capture
}
此时,您可以看到,我们正在设置一个函数来返回一个静态值。这意味着我们可以直接将静态值赋值给变量,而不是设置一个函数
$scope.hasCamera = !!Modernizr.capture
现在,您可以做得更好的最后一件事是,如果您仅将Modernizer用于这一功能。因为这是一个如此简单的特征检测,所以使用所有的Modernizer是过分的
$scope.hascamer='capture'在document.createElement('input')中`