如何为YouTube视频手动输入的iframe捕获OnStateChange事件

时间:2013-03-16 20:47:00

标签: javascript iframe youtube

我需要能够为youtube视频捕获onstatechange事件,该视频存在为手动输入的iframe(不是通过javascript构建的)但不幸的是我无法弄清楚如何做到这一点,或者它是否可能。查看YouTube文档时,有很多例子可以在您通过JS创建播放器时连接事件处理程序,但我似乎找不到为预先存在的iframe执行此操作的方法。我的代码如下:

<iframe id="video_player" enablejsapi="1" width="853" height="480" src="http://www.youtube.com/embed/ANYVIDEO rel=0&start=0&end=71" frameborder="0" allowfullscreen></iframe>


<script src="http://www.youtube.com/iframe_api"></script>

<script>
function onYouTubeIframeAPIReady(playerId) {
    player = document.getElementById("video_player");
    player.addEventListener("onStateChange", "video_state_change");
}
function video_state_change(data){
    alert("STATE_CHANGE: " + data);
}
</script>

提前感谢您提供的任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

您可以使用SWFObject集成youtube播放器。

<object type="application/x-shockwave-flash" id="video_player" width="650" height="400" data="//www.youtube.com/v/ANYVID?version=3&amp;enablejsapi=1&amp;"><param name="allowScriptAccess" value="always"></object>

这将允许您使用JS API。

下一步非常简单。将以下JavaScript代码段添加到HTML文件中。

// Called automatically as soon as the player loads    
function onYouTubePlayerReady() {
    player = document.getElementById("video_player").get(0);
    player.addEventListener("onStateChange", "video_state_change");
}