Chrome扩展程序 - 收听YouTube活动

时间:2011-12-03 07:18:00

标签: javascript google-chrome youtube google-chrome-extension

var ytplayer = document.getElementById("movie_player");
ytplayer.addEventListener('onStateChange', 'onPlayerChange');

function onPlayerChange(newState) {
  alert('do something at least...');
  if(newState == 0) {
    alert('movie has stopped');
  }
}

这就是我尝试使用Google Chrome扩展程序收听YouTube活动的方法。它根本不会给我任何错误,即使它应该在电影结束时。或者至少在国家发生变化时。有谁知道什么是错的? 控制台不会给我任何错误。

2 个答案:

答案 0 :(得分:3)

您的代码在Firefox上运行正常,因为播放器是Flash。但Chrome支持HTML5,播放器是HTML5视频播放器。因此,没有任何元素具有" movie_player" ID。您确定您的视频播放器是Chrome上的Flash。右键单击视频,然后在上下文菜单中查看播放器信息。 More details about YouTube HTML5 Player

Youtube HTML5播放器目前正处于试用阶段,因此你应该检测用户的播放器模式并为其添加一个后备,至少YT完全使用HTML5。

答案 1 :(得分:1)

HTML5 video元素会触发自己的事件。现在,看起来最简单的方法是通过类名(因为它没有id):

var videoElement = document.getElementsByClassName('video-stream')[0];

视频元素会触发一系列事件,您可以在其中找到here in the HTML5 spec

例如:

videoElement.addEventListener('pause', function(){ alert('paused!'); })