0

可能重复:
内容脚本中的 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();
}

不幸的是 onytplayerStateChange 函数没有被触发,有人知道为什么吗?

4

1 回答 1

1

正如这个答案所说

内容脚本在隔离环境中执行。您必须在页面本身中注入 state 方法。

遵循那里已经给出的建议使用内容脚本将代码插入页面上下文

于 2012-08-20T15:56:59.757 回答