Добавление прослушивателя событий к звуковому тегу HTML5 в JavaScript - PullRequest
26 голосов
/ 11 июня 2011

Привет, я создаю новый элемент аудио тега в Javascript, это код:

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

прежде чем добавить его в тело, я бы хотел добавить обработчик события onended, я попробовал что-то вроде этого:

audio.onended = foo;

где foo что-то вроде: function foo () {alert ('Hola')}

и

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

в обоих случаях это не сработало. В первом случае звуковой тег добавляется без какого-либо встроенного обработчика событий; в то время как во втором случае добавляется звуковой тег, событие onended находится в атрибутах, но не запускается.

У кого-нибудь есть идеи?

спасибо заранее.

-Z-

Ответы [ 3 ]

52 голосов
/ 11 июня 2011

try:

audio.addEventListener('ended', foo);

Это правильный и стандартный метод добавления прослушивателей событий.

3 голосов
/ 27 апреля 2012

Во-первых, убедитесь, что у аудиоэлемента есть событие, прежде чем использовать его. Предположим, что HTMLAudioElement - это аудио, вы можете проверить его следующим образом audio.hasOwnProperty('onended')

На основе моего браузера это не такподдержка.

1 голос
/ 10 апреля 2014

Я нашел этот очень полезный jsfiddle из Google: http://jsfiddle.net/aarongloege/fzXsT/light/

{Code on /*jsFiddle*/}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...