在javascript中将事件侦听器添加到音频HTML5标记

时间:2011-06-10 22:33:02

标签: javascript html5 audio event-handling

您好我在Javascript中创建一个新的音频标记元素,这是代码:

var audio = document.createElement("audio");
audio.setAttribute("id","myid");
audio.setAttribute("autoplay","autoplay");
document.body.appendChild(audio);

在将它附加到身体之前,我想放置一个受到启发的事件处理程序,我尝试过这样的事情:

audio.onended = foo;

其中foo类似于:function foo(){alert('Hola')}

audio.setAttribute("onended","foo()");

在这两种情况下它都不起作用。 在第一种情况下,音频标签被附加而没有任何onended事件处理程序; 而在第二种情况下,附加了音频标签,onended事件在属性上但不会触发。

有人有任何想法吗?

提前感谢。

-z -

3 个答案:

答案 0 :(得分:52)

尝试:

audio.addEventListener('ended', foo);

这是添加事件侦听器的正确标准方法。

答案 1 :(得分:3)

首先,在使用之前确保音频元素是否包含该事件,假设HTMLAudioElement是音频,您可以像audio.hasOwnProperty('onended')

那样测试它

根据我的浏览器,它不支持。

答案 2 :(得分:1)

我从谷歌找到了这个非常有用的jsfiddle:http://jsfiddle.net/aarongloege/fzXsT/light/

{Code on /*jsFiddle*/}