chrome.webRequest.onBeforeRequest.addListener无法读取属性'onBe
chrome.webRequest.onBeforeRequest.addListener Cannot read property 'onBeforeRequest' of undefined
我正在尝试构建自己的chrome扩展,并尝试使用onBeforeRequest
添加一个事件处理程序。
我的manifest.json
:
{
"manifest_version": 2,
"name": "My extension",
"description": "some descrpition",
"version": "1.0",
"permissions": [
"activeTab",
"tabs",
"webRequest",
"webNavigation",
"management",
"http://*/*",
"https://*/*"
],
"background": {
"scripts": [
"js/jquery-2.1.4.min.js",
"js/background.js"
],
"persistent": true
},
"browser_action": {
"default_icon": "imgs/img.png",
"default_title": "extension"
},
"icons" : {
"64" : "imgs/vergrootglas.png"
}
}
我的background.js
:
function callback(param1,param2,param3){
alert(param1);
alert(param2);
alert(param3);
}
//alert("test");
chrome.webRequest.onBeforeRequest.addListener(callback);
我把这个装进我的铬合金里了。但每次我在控制台上收到这样的消息:
未捕获的TypeError:无法读取的属性"onBeforeRequest"未定义
我不知道我做错了什么,我发现了:https://developer.chrome.com/extensions/webRequest
但是代码的示例似乎与我所做的完全相同。我在这里错过了什么?
上面的评论对我来说没有意义。上面有一个后台脚本,它似乎有适当的权限。。。一些额外的评论可能会有所帮助。。。
您需要在清单文件中添加一个后台页面,并在清单中添加适当的权限,以便后台页面可以访问webRequest API。看到这个例子:chrome.webRequest不工作?
正如Mihai所提到的,如果您需要让内容脚本执行操作,请查看此页面:https://developer.chrome.com/extensions/messaging
将其添加到您的内容脚本中(您可以将问候更改为动作,并将背景脚本应执行的问候更改为哪个动作):
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
将此添加到您的后台页面(您可以根据消息执行if语句和peform不同的操作):
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
});
我刚刚遇到了一个类似的问题,只是对我来说这个问题与权限无关,实际上是一个Webpack问题。
我的背景脚本意外地与内容脚本捆绑在一起。后台js正在导出内容脚本正在使用的某些常量,导致仅限于后台文件(如chrome.webRequest
)的方法作为内容脚本的一部分被调用,因此undefined…的不可读取属性
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- chrome.webRequest.onBeforeRequest.addListener无法读取属性'onBe