我有一个<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/