我遇到了一个奇怪的要求,我需要创建一个HTML视频标记事件,如Play,Pause,VolumeChanged等,然后触发它们,因为它将由不同的模块处理。 有没有办法可以这样做,类似于CreateCustomEvent或CreateEvent和Dispatch事件。
我在网上搜索,但除了直接调用document.getElementsByTagName('video')[0] .play()等之外找不到任何帮助,但这不是我需要的,因为我想要注册的事件处理程序一旦被解雇就处理事件。但直接调用play()实际上会播放视频并触发'play'事件。
所以请帮帮我......
谢谢和问候,
Techtotie。
答案 0 :(得分:0)
我得到了答案。而不是做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);
}
请让我知道有关浏览器中事件处理的任何链接或文档。我认为,由于视频将是文档元素的子节点,因此事件可能会从文档传播到视频,但事实并非如此。相反,事件从子节点冒泡到父节点。 令人困惑!!!!
反正
感谢帮助人员。