Paolo
Paolo

Reputation: 627

Adding event listener to audio HTML5 tag in javascript

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-

Upvotes: 27

Views: 34812

Answers (2)

user1217010
user1217010

Reputation: 31

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.

Upvotes: 3

Variant
Variant

Reputation: 17365

try:

audio.addEventListener('ended', foo);

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

Upvotes: 53

Related Questions