Проблемы с событием YouTube Javascript API onstateChange - PullRequest
1 голос
/ 27 января 2011

Мой javascript:

function onYouTubePlayerReady()
{
  playerObj = document.getElementById("player_embed");
  playerObj.addEventListener("onStateChange", test);

  // Make sure the document is loaded before any DOM-manipulation
  $(document).ready(function() {

      // Update player information every 500ms
      setInterval(updatePlayerInfo, 500);

  });
}

function test(newState)
{
    alert(newState);
}

Мои видео загружены правильно, и я могу контролировать их через мой javascript.Однако событие onStateChange никогда не срабатывает.При воспроизведении / остановке / приостановке воспроизведения видео и т. Д. Никогда не появляется предупреждение. У кого-нибудь есть решение или похожая проблема?

Ответы [ 2 ]

4 голосов
/ 27 января 2011

Вы должны передать имя функции в виде строки addEventListener.

playerObj.addEventListener("onStateChange", "test");
0 голосов
/ 20 сентября 2013

Этот формат для JQuery, но логика та же, создайте функцию внутри YouTubePlayerReady для передачи playerId

$(document).ready(function() {              
    onYouTubePlayerReady = function(playerId) {
        eventHandler=function(state){onStateChangeID(state,playerId);}
        playerObj = document.getElementById("player_embed");
        playerObj.addEventListener('onStateChange','eventHandler',false);
    }
    onStateChangeID=function(newState,playerId) {
        console.log("onStateChange: ("+playerId+") " + newState);
    }
});
...