2011-04-11 27 views
0

我想用這種方式趕<video>元素的「結束」事件:控制HTML5視頻和短碼的方法

var v = document.getElementsByTagName("video")[0]; 
v.onended = function(e) { /* handle event */ } 

但是它沒有得到Safari瀏覽器5.0.4下燒製(6533.20 0.27)。

如果我使用addEventListener,它的工作原理,但還有更多的代碼:

var v = document.getElementsByTagName("video")[0]; 
v.addEventListener("ended", function(e) { /* handle event */ }); 

我看到了W3C的第一個例子,但我不知道爲什麼它不工作?

也許我做錯了什麼?

+1

它應該工作,因爲'.onended'是HTML5事件處理程序。 Safari無法正確支持HTML5,或者您的測試代碼無法正常工作。你能發佈你的測試代碼嗎? – Blender 2011-04-11 15:39:30

回答

0

addEventListener是傾聽事件的正確方式。直接從onended理論上應該工作,但如果別的其他代碼也將使用此方法來收聽它將覆蓋您的收聽,你將不會被通知。

因此無論如何: onended - 一次性使用,可輕鬆覆蓋而不會注意到它。 addEventListener - 可以支持無限數量的聽衆