我查看了这个网站和其他几个网站(但是在这个网站上你得到了更具体的答案,这样很好。)但我似乎无法找到正确的答案。很多人问了类似的问题,但我的问题似乎仍然存在。
我尝试制作Chrome扩展程序,通过快捷方式从某些标题中获取文本。我是一个相当陌生的脚本,所以我的工作方式是一步一步做。我已经在第一步失败了。
我只是去找它。这是在我的 manifest.json:
中 {
"name": "grab some",
"description": "grab some texts from html titles",
"version": "1.0",
"manifest_version": 2,
"content_scripts": [ {
"js": [ "content_scripts.js" ],
"matches": [ "*://something.com/*"]
} ]
}
这是在我的 content_scripts.js:
中document.onkeyup=function(y){
if(y.ctrlKey && y.which == 89) {
alert('Keyboard shortcut working!');
return false;
}
};
document.addEventListener('keyup', doc_keyUp, false);
我一无所获。如果我将content_scripts.js的确切代码放在javascript应用程序(cjs-extension)中。然后它完美地运作。我的问题是:当我尝试在我自己的扩展中执行此操作时,为什么它不起作用?
顺便说一句;我问我问题的方式会有一些错误,对不起。但我希望你明白我想问的是什么。
答案 0 :(得分:0)
您的扩展功能对我来说很好。我只是将它放入两个文件(manifest.json和content_scripts.js)并通过Chrome加载它 - >扩展程序 - >加载解压扩展(激活开发人员模式后)。但是,我将“某些内容”更改为我实际可以访问的页面("matches": [ "*://stackoverflow.com/*"]
)。
这让我有以下几点:
matches
模式实际上并不匹配。点击扩展页面上的“详细信息”,对我来说,它说“权限:在stackoverflow.com上读取和更改数据”。
addEventListener
useCapture
设为真(见reference)哦,已经提到过:你的第二个addEventListener
正在抛出错误,因为函数不存在。
未捕获的ReferenceError:未定义doc_keyUp at content_scripts.js:8
然而,在我的测试中,这不是问题。