2011-04-11 19 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 - 可以支持无限数量的听众