我想使用这种方法来捕获<video>元素的“ended”事件:
var v = document.getElementsByTagName("video")[0];
v.onended = function(e) { /* handle event */ }但是在Safari 5.0.4 (6533.20.27)下它不会被触发。
如果我使用addEventListener,它可以工作,但还有更多的代码要做:
var v = document.getElementsByTagName("video")[0];
v.addEventListener("ended", function(e) { /* handle event */ });我在W3C中看到了第一个示例,但我想知道为什么它不能工作?
也许我做错了什么?
发布于 2011-04-13 18:56:29
addEventListener是监听事件的正确方式。从理论上讲,直接onended应该可以工作,但是如果其他地方的代码也将使用此方法进行侦听,它将覆盖您的侦听,并且不会通知您。
所以不管怎样:onended -单次使用,可以很容易地被覆盖,而不会被注意到。addEventListener -可以支持无限数量的监听器
https://stackoverflow.com/questions/5623705
复制相似问题