2011-01-26 66 views
1

我的javascript:YouTube的JavaScript API第onstateChange事件問題

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事件似乎永遠不會觸發。當我正在播放/停止/暫停視頻時,它從來沒有提醒過任何人有解決方案/類似的問題?

回答

4

您必須將函數名稱作爲字符串傳遞給addEventListener

playerObj.addEventListener("onStateChange", "test"); 
+0

看起來我需要RTFM。謝謝。 – 2011-01-27 10:19:01

0

此格式的jQuery但邏輯是一樣的,裏面創建onYouTubePlayerReady函數傳遞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); 
    } 
});