我有一个<audio id="audio1">对象,当音频结束时,我希望它做一些事情。看起来很简单,但是我的代码没有任何结果。这是我的javascript:

        myAudio=document.getElementById("audio1");
        myAudio.addEventListener('ended', alert('Ha'), true);


最终,我希望它在音频结束时刷新,然后我想找到一种预加载音频轨道的方法,然后在音频结束时刷新它,因此没有加载时间。

我看到了几个关于该主题的stackoverflow问题,但是它们都包含许多额外的内容,并且在尝试了他们的方法(我可以理解的方法以及与他们所做的所有其他操作分开的方法)之后,该方法不起作用。我相信我找到了执行此操作的最简单方法,但是它没有返回结果。

*当前功能是alert('Ha'),但是,在工作时我会将其更改为location.reload(true)

最佳答案

尝试

myAudio.addEventListener('ended', function () {
    alert('ha');
}, true);


要以编程方式添加事件侦听器,您需要向其传递一个函数。这会将其包装在lambda / function表达式中。您现在拥有的方式是将alert('ha')的返回值传递给addEventListener(即,未定义)。

这与使用html属性时有所不同;例如,当您拥有onclick="..."时,您需要为其提供要执行的实际代码。

关于javascript - 我如何使事件监听器响应DOM对象“结束”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17517749/

10-10 17:08
查看更多