控制HTML5视频和短代码方法
我想使用这种方法来捕获 元素的“结束”事件:
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 中的第一个示例,但我想知道为什么它不起作用?
也许我做错了什么?
I would like to use this approach to catch the “ended” event of the <video>
element:
var v = document.getElementsByTagName("video")[0];
v.onended = function(e) { /* handle event */ }
But it doesn’t get fired under Safari 5.0.4 (6533.20.27).
If I use addEventListener
, it works, but there is more to code:
var v = document.getElementsByTagName("video")[0];
v.addEventListener("ended", function(e) { /* handle event */ });
I saw the first example in W3C, but I’m wondering why it doesn’t work?
Maybe I’m doing something wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
addEventListener
是监听事件的正确方法。直接的onending
理论上应该可以工作,但是如果其他地方的其他代码也使用此方法来监听,它将覆盖您的监听,并且您不会收到通知。所以无论如何:
onending
- 一次性使用,可以在不注意的情况下轻松覆盖。addEventListener
- 可以支持无限数量的监听器addEventListener
is the correct way of listening to an event. The directonended
should theoretically work but if some other code elsewhere will also use this method to listen it will override your listening and you will not be notified.So anyway:
onended
- single use, can be overridden easily without noticing it.addEventListener
- can support unlimited number of listeners