控制HTML5视频和短代码方法

发布于 2024-10-31 08:26:37 字数 490 浏览 1 评论 0原文

我想使用这种方法来捕获 元素的“结束”事件:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

池木 2024-11-07 08:26:37

addEventListener 是监听事件的正确方法。直接的 onending 理论上应该可以工作,但是如果其他地方的其他代码也使用此方法来监听,它将覆盖您的监听,并且您不会收到通知。

所以无论如何:
onending - 一次性使用,可以在不注意的情况下轻松覆盖。
addEventListener - 可以支持无限数量的监听器

addEventListener is the correct way of listening to an event. The direct onended 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文