javascript - chrome.webRequest 报出 undefined 的错误
本文介绍了javascript - chrome.webRequest 报出 undefined 的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
注:当前chrome浏览器版本为 54.0.2840.99 (64-bit)
目的:
开发CRX(chrome浏览器插件),能够修改页面所有的请求头
现状
已经按照百度上找到的 chrome.webRequest 相关教程进行操作
在 manifest.json 中配置了权限 permissions 使用 webRequest
{
"manifest_version": 2,
"name": "ChormeHeaderChange",
"version": "1.0.0",
"description": "ChormeHeaderChange",
"author": "CX",
"content_scripts": [
{
"matches": ["http://www.公司内部后台地址不方便透露.com/*"],
"js": [
"jquery-2.1.1.min.js",
"code.js"
],
"run_at": "document_end"
}
],
"permissions": ["*://*/*", "webRequest", "webRequestBlocking"],
"web_accessible_resources": []
}
在 code.js 中进行改 header 的操作
/* 这里有些改header的操作
chrome.webRequest.onBeforeSendHeaders.........
*/
console.log(chrome);
console.log(chrome.webRequest);
console.log(chrome.webRequestBlocking);
然后通过chrome浏览器的扩展程序的开发者模式进行CRX文件的打包和安装并测试,然后发现报错说 undefined ,所以我直接打印 chrome.webRequest 看看是什么,结果是undefined。
那要怎么配置 manifest.json 或者怎么改代码才能使用 chrome.webRequest 呢?
解决方案
原来 chrome.webRequest 只能在 background 中运行
{
"manifest_version": 2,
"name": "ChormeHeaderChange",
"version": "1.0.0",
"description": "ChormeHeaderChange",
"author": "CX",
"background": {
"scripts": ["code.js"]
},
"permissions": ["*://*/*", "webRequest", "webRequestBlocking"],
"web_accessible_resources": []
}
这个很关键 :
"background": {"scripts": ["code.js"]}
这篇关于javascript - chrome.webRequest 报出 undefined 的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文