我使用的是自定义Modernizr版本,v3.3.0。我创建了一个简单的JSFiddle示例来说明:https://jsfiddle.net/cqkg7x45/6/。
console.log(Modernizr);
将显示Modernizr对象,当我在JS控制台中检查它时,我可以看到“videoautoplay”是一个值为“true”的属性。
但是,当我做的时候
console.log(Modernizr.videoautoplay)
它返回“undefined”。
我最初在我正在开发的WordPress主题中看到了这个问题,但也能够在JSFiddle和一个单独的独立HTML页面中重新创建。此外,Modernizr将“videoautoplay”类放在我的HTML标签上,即使我知道该设备不支持该功能(iPhone 5)。
更新:此问题似乎发生在Chrome(v47.0.2526.106)中,但不是Firefox(v43.0.2)。
答案 0 :(得分:1)
如果有其他人遇到这个问题,我会回答我自己的问题。我在这篇SO帖子上找到了解决方案:How do I detect if the HTML5 autoplay attribute is supported?。
由于这是“异步”测试,因此无法使用语法
访问该属性Modernizr.videoautoplay
你必须使用.on()函数,如上面的SO帖子所示:
Modernizr.on('videoautoplay', function(result){
if(result) {
alert('video autoplay is supported');
} else {
alert('video autplay is NOT supported');
}
});