これはaddeventlistner に引数を渡す方法と同様の質問です が、Youtube プレーヤーの API を使用すると、シナリオが少し異なります。
したがって、swfobject を使用して、同じページに複数の YouTube プレーヤーがあります。
swfobject.embedSWF("http://www.youtube.com/v/"+video_id+"?enablejsapi=1&version=3&modestbranding=1&theme=light&color=white&autohide=1&controls=1&showinfo=0&iv_load_policy=3&autoplay=0&playerapiid=<%= "ytPlayer#{index}" %>", "<%= "ytPlayer#{index}" %>", "500", "280", "8", null, null, params);
ruby を使用して ytplayer オブジェクト ID を生成している場所。そして、別の関数で onStateChange イベントをリッスンしています。
ytplayer.addEventListener("onStateChange", "onytplayerStateChanged");
function onytplayerStateChanged(newState) {
if(newState == -1){
//unstarted
}else{
debugger;
}
}
しかし、問題は、このイベントがどの ytPlayer から来たのかを知ることができないことです。(onytplayerStateChanged 関数で呼び出し元のソースを見つけます) この構造の正確な実装に従うことによってのみ、このイベントをキャッチできるからです。This oneで実装を試みましたが、もうイベントをキャッチしません。