JavaScript可以播放附加到窗口对象的事件

JavaScript canplay event attached to window object?

本文关键字:窗口 对象 事件 播放 JavaScript      更新时间:2023-09-26

我在<head>中有以下代码:

var canplay = false;
if (window.addEventListener) {
    window.addEventListener('canplay', function(ev) {
        canplay = true;
    }, true);
}

后来我有一个addEventListener附加到视频,但它没有发射,因为canplay已经被发射(并从上面的代码处理)。

这是好的,但是为什么我们将事件侦听器附加到window对象,为什么它工作?

之后我有一个附加到video的addEventListener,但它没有触发

canplay事件没有连续触发。它只会在缓冲区准备好播放时触发。因为你说你以后附加一个监听器到视频对象;也许您错过了事件被触发的时间。但是你可以随时通过video.readyState >= video.HAVE_FUTURE_DATA

查看

为什么我们将事件监听器附加到窗口对象,为什么它工作?

Spec允许。

  • 来自W3C:所有HTML元素都必须支持的事件处理程序(及其相应的事件处理程序事件类型),包括内容属性和IDL属性,以及文档和窗口对象…
  • 你可以在media元素或它的任何父元素上安装事件监听器,包括文档主体…