我正在学习如何创建Chrome扩展程序。我刚刚开始开发一个捕捉YouTube事件的工具。我想将其与YouTube Flash Player结合使用(稍后,我将尝试使其与HTML5兼容)。
manifest.json:
{
    "name": "MyExtension",
    "version": "1.0",
    "description": "Gotta catch Youtube events!",
    "permissions": ["tabs", "http://*/*"],
    "content_scripts" : [{
        "matches" : [ "www.youtube.com/*"],
        "js" : ["myScript.js"]
    }]
}
myScript.js:
function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
问题在于控制台为我提供了“开始!” ,但没有“状态已更改!” 当我播放/暂停YouTube视频时。
将此代码放入控制台后,它就可以工作了。我究竟做错了什么?


我还遇到了已加载脚本的排序问题,这是通过顺序加载脚本解决的。加载基于Rob W的答案。
用法示例为:
其实,我是JS的新手,所以随时向我介绍更好的方法。