【问题标题】:How to Create and Fire HTML Video tag Events如何创建和触发 HTML 视频标签事件
【发布时间】:2023-09-22 04:14:01
【问题描述】:

我遇到了一个奇怪的要求,我需要创建一个 HTML 视频标签事件,如 Play、Pause、VolumeChanged 等,然后触发它们,因为它将由不同的模块处理。

有没有类似CreateCustomEventCreateEventDispatch 事件的方法?

我在网上搜索,但除了直接调用document.getElementsByTagName('video')[0].play() 等外找不到任何帮助,但这不是我需要的,因为我希望注册的事件处理程序在触发后处理事件。但是直接调用 play() 实际上会在触发“播放”事件的同时播放视频。

所以请帮帮我...

【问题讨论】:

标签: javascript html html5-video dom-events


【解决方案1】:

我得到了答案。而不是 document.dispatchEvent 直接在视频元素上调度事件,如下所示。

function()
{
var videoElement = document.getElementsByTagName('video')[0];
var VideoEvent = new Event('play');
videoElement.dispatchEvent(VideoEvent);
}

并且在应用程序端有如下所示的处理程序:

function onload() 
{
video = document.getElementsByTagName('video')[0];
video.addEventListener('play', handleVideoEvent, false);
video.addEventListener('pause', handleVideoEvent, false);
}

function handleVideoEvent(evt)
{
    alert('Handle event ' + evt.type);
}

请让我知道任何解释浏览器事件处理的链接或文档。我认为由于视频将是文档元素的子节点,因此事件可能会从文档传播到视频,但事实并非如此。相反,事件从子节点冒泡到父节点。 令人困惑!!!!

不管怎样

感谢大家的帮助。

【讨论】:

    最近更新 更多