2014-07-18 46 views
0

我遇到了一個奇怪的需求,我需要創建一個HTML視頻標記事件,如Play,Pause,VolumeChanged等,然後將它們解僱,因爲它將由不同的模塊。 有沒有什麼辦法可以做到類似於CreateCustomEvent或CreateEvent和Dispatch Event。我在網上搜索,但找不到任何幫助,除了直接調用document.getElementsByTagName('video')[0] .play()等,但這不是我所需要的,因爲我想註冊的事件處理程序處理一旦被解僱的事件。但直接調用play()實際上會播放視頻,同時觸發'play'事件。如何創建並激發HTML視頻標記事件

所以,請幫我...

感謝和問候,

Techtotie。

+0

是。我相信這就是你要找的。 https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events – brianchirls

回答

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); 
} 

請讓我知道任何鏈接或文檔解釋有關事件在瀏覽器中處理。我認爲,由於視頻將是文檔元素的子節點,因此事件可能會從文檔傳播到視頻,但事實並非如此。相反,事件從子節點向上冒泡。 它令人困惑!

反正

感謝您的幫助球員。