Adding event listener to audio HTML5 tag in javascript

巧了我就是萌 提交于 2019-11-29 16:07:01

问题


Hi I'm creating a new audio tag element in Javascript this is the code:

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

before appending it to the body, I'd like to place an onended event handler, I tried something like this:

audio.onended = foo;

where foo is something like: function foo(){alert('Hola')}

and

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

in both case it didn't work. In the first case the audio tag is appended without any onended event handler; while in the second case the audio tag is appended, the onended event is on the attributes but it does not fire.

does someone have any idea?

thanks in advance.

-z-


回答1:


try:

audio.addEventListener('ended', foo);

This is the correct and standard method to add event listeners.




回答2:


First, make sure whether audio element has the event before you use it, suppose the HTMLAudioElement is audio, you can test it like this audio.hasOwnProperty('onended')

Based on my browser, it doesn't support.




回答3:


I found this very helpful jsfiddle from Google: http://jsfiddle.net/aarongloege/fzXsT/light/

{Code on /*jsFiddle*/}


来源:https://stackoverflow.com/questions/6312714/adding-event-listener-to-audio-html5-tag-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!