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-
You can add event listeners to any DOM object not only HTML elements. i.e the window object. The addEventListener() method makes it easier to control how the event reacts to bubbling.
Use the document. querySelectorAll() method to select the elements by class. Use the forEach() method to iterate over the collection of elements. Use the addEventListener() method to add an event listener to each element.
HTML5 <audio> Tag. Since the release of HTML5, audios can be added to webpages using the “audio” tag.
try:
audio.addEventListener('ended', foo);
This is the correct and standard method to add event listeners.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With