如何检测YouTubevideo完成播放?

我正在一个拥有大量embedded式YouTubevideo的网站上工作,客户希望在video停止播放时显示一个popup窗口。

我看了YouTube的API,似乎有一种方法来检测video结束时:

http://code.google.com/apis/youtube/js_api_reference.html

但是由于video已经在网站上(已经通过粘贴embedded代码手动添加了数千个video),因此我无法在video中embeddedvideo。

有没有办法检测到这些video的结尾,而不改变任何现有的video(使用JavaScript)?

这可以通过YouTube播放器API完成:

http://jsfiddle.net/7Gznb/

工作示例:

  <div id="player"></div> <script src="http://www.youtube.com/player_api"></script> <script> // create youtube player var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width: '640', height: '390', videoId: '0Bmhjf0rKe8', events: { onReady: onPlayerReady, onStateChange: onPlayerStateChange } }); } // autoplay video function onPlayerReady(event) { event.target.playVideo(); } // when video ends function onPlayerStateChange(event) { if(event.data === 0) { alert('done'); } } </script> 

你可能想要做的是在所有页面上包含一个脚本,执行以下操作… 1.findyoutube-iframe:通过标题的宽度和高度search它,或通过查找www.youtube.com的来源。 你可以通过…做到这一点 – 通过for-in循环遍历window.frames,然后通过属性过滤掉

  1. 在当前页面的iframe中插入jscript,添加onYoutubePlayerReady必须包含的函数http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx

  2. 添加事件监听器等。

希望这可以帮助