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活动的方法。它根本不会给我任何错误,即使它应该在电影结束时。或者至少在国家发生变化时。有谁知道什么是错的? 控制台不会给我任何错误。
答案 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!'); })