您好我在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 -
答案 0 :(得分:52)
尝试:
audio.addEventListener('ended', foo);
这是添加事件侦听器的正确标准方法。
答案 1 :(得分:3)
首先,在使用之前确保音频元素是否包含该事件,假设HTMLAudioElement
是音频,您可以像audio.hasOwnProperty('onended')
根据我的浏览器,它不支持。
答案 2 :(得分:1)
我从谷歌找到了这个非常有用的jsfiddle:http://jsfiddle.net/aarongloege/fzXsT/light/
{Code on /*jsFiddle*/}