我正在尝试创建chrome (extension) webRequest listener。但是,无论我尝试什么,我都无法访问chrome.webRequest
对象 - 我的程序与Uncaught TypeError: Cannot read property 'onCompleted' of undefined
崩溃。此外,在命令行上调试显示chrome.webRequest
不存在。
我怀疑我在权限方面做错了,因为我没有看到许多其他stackoverflow问题或chrome bug报告存在同样的问题。
这是我的 manifest.json
{
"manifest_version": 2,
"name": "my extension",
"description": "my extension description",
"version": "1.0",
"permissions": [
"activeTab",
"webRequest",
"webRequestBlocking",
"https://<myextension>.com/*",
],
"page_action": {
"default_icon": { // optional
"19": "myextension.png", // optional
"38": "myextension.png" // optional
}
},
"content_scripts": [
{
"matches": ["https://<myextension>.com/*"],
"css": ["myextension.css"],
"js": ["jquery.js", "myextension.js"]
}
]
}
这是我的 myextension.js
var myfilter = {
urls: ['https://myextension.com/*']
}
function mycallback(){
console.log('received request response');
}
chrome.webRequest.onCompleted.addListener(mycallback, myfilter);
知道我可能做错了什么吗?
我正在运行OSX 10.10.2
和chrome 40.0.2214.94
。
答案 0 :(得分:1)
大多数Chrome API无法在Content Scripts中使用,包括webRequest
:
但是,内容脚本有一些限制。他们不能:
使用
chrome.*
API,但以下情况除外:
extension
(getURL
,inIncognitoContext
,lastError
,onRequest
,sendRequest
)i18n
runtime
(connect
,getManifest
,getURL
,id
,onConnect
,onMessage
,sendMessage
)storage
您需要在后台页面中处理此事件,并使用Messaging与上下文脚本进行通信。