обратный вызов JavaScript работает с IE, но не с Chrome или Firefox - PullRequest
2 голосов
/ 17 мая 2011

Я думаю, что этот код должен воспроизводить звук, а затем показывать окно с предупреждением. Он работает с IE9, но с Chrome и Firefox, звук воспроизводится, но обратный вызов никогда не вызывается - поэтому нет окна предупреждения.

Я программист на c #, c ++, новичок в javascript, и я мог бы помочь! Спасибо.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <script type="text/javascript">
        var playAll= function(){
             var audio = document.getElementById('s');

             var callback = function(e){
                alert("ended"); 
             };

            audio.onended = callback;
            audio.play();
        }

    </script>
</head>

<body>
    <input name="Button1" type="button" value="Play" onclick="playAll()"/>

    <audio ID="s">
    <source src="s.mp3"  >
    <source src="s.ogg"  >
</body>

</html>

Ответы [ 2 ]

4 голосов
/ 17 мая 2011

Просто чтобы быть уверенным, что это не проблема недействительного HTML, используйте следующую действительную версию

<audio ID="s">
  <source src="s.mp3" />
  <source src="s.ogg" />
</audio>

, а затем используйте правильный способ связывания событий.

audio.addEventListener( "ended", callback, false);
3 голосов
/ 17 мая 2011

onended, кажется, специфичен для IE9, Chrome и Firefox вызовут событие ended, которое можно привязать к функции следующим образом: v.addEventListener("ended", function() { alert("ended"); }

Помните, что спецификация HTML5 по-прежнемуразрабатывается, и не все браузеры реализуют его одинаково.

Здесь есть похожий вопрос: Событие HTML 5 Video OnEnded не запускается

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