可能重复:
内容脚本中的addEventListener不工作
我正在编写我的第一个Chrome扩展程序,但我在拦截YoutubePlayer中的事件时遇到了一些问题。扩展名是content_scripts类型的扩展名。在我的js文件中,我将事件处理程序附加到YoutubePlayer的"onStateChange"事件。代码看起来像
var playerLoaded = ( document.getElementById("movie_player") == null ), intervalId;
var attachEvents = function(){
var currentVideo =document.getElementById("movie_player");
if(currentVideo){
currentVideo.addEventListener("onStateChange", "onytplayerStateChange");
if(intervalId)
clearInterval(intervalId);
}
}
function onytplayerStateChange() {
alert("Player's new state: " + newState);
};
if(!playerLoaded){
debugger;
intervalId = setInterval(attachEvents,100);
} else{
debugger;
attachEvents();
}
不幸的是onytlayerStateChange函数没有被触发,有人知道为什么吗?
正如这个答案所说的
内容脚本是在一个独立的环境中执行的。你必须在页面本身中注入state方法。
按照已经给出的建议使用内容脚本将代码插入页面上下文