Modernizr.videoautoplay对象显示true,Modernizr.videoautoplay返回undefined

时间:2016-01-12 20:33:08

标签: modernizr

我使用的是自定义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)。

1 个答案:

答案 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');
  }
});