0

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

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

最终,我希望它在音频结束时刷新,然后我想找到一种方法来预加载音轨,然后在音频结束时刷新它,这样就没有加载时间了。

我看到了几个关于这个主题的 stackoverflow 问题,但它们都包含了许多额外的东西,并且在尝试了他们的方法(我可以理解并与他们正在做的其他事情分开的方法)之后,它没有奏效。我相信我找到了最简单的方法来做到这一点,但它没有返回结果。

*目前该功能是alert('Ha'),但是,我将其更改为location.reload(true)它工作时。

4

1 回答 1

2

尝试

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

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

这与您使用 html 属性时不同;例如,当你有onclick="..."你需要给它实际的代码来执行。

于 2013-07-08T00:44:59.933 回答