您好,我的扩展程序有问题。
我使用webRequest.onBeforeRequest
阻止了一个脚本,但当我尝试使用chrome.storage
控制台时,会返回此错误Uncaught TypeError: Cannot read property 'local' of undefined
我的代码:
background.js
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if( details.url == "http://o1.t26.net/js/application.js?2.0.4" )
return {redirectUrl: chrome.extension.getURL("load.js") };
},
{urls: ["http://o1.t26.net/*.js?2.0.4"]}, ["blocking"]);
load.js
chrome.storage.local.get('test', function (h){
console.log(h.test);
});
的manifest.json
{
"content_scripts": [{
"matches": [ "http://www.agust.in/*", "http://agust.in/*" ],
"js": ["test.js"],
"run_at": "document_start",
"all_frames": true
}
],
"description": "TEST",
"icons": {
"16": "icon_one.png",
"48": "icon_two.png",
"128": "icon_three.png"
},
"name": "Test",
"permissions": ["storage", "webRequest", "webRequestBlocking", "http://www.agust.in/*", "http://agust.in/*", "http://o1.t26.net/*", "http://t26.net/*"],
"version": "1.4",
"manifest_version": 2,
"web_accessible_resources": [ "load.js"],
"background": {
"scripts": ["background.js"],
"persistent": true
}
}
顺便说一下,脚本(load.js)加载完美,对不起我的BADDD英语。
答案 0 :(得分:1)
您正在将正常网页中加载的脚本重定向到扩展程序中的load.js。尽管load.js来自您的extenison,但它已在网页的上下文中加载和执行,该上下文无法访问chrome.storage
API。
我建议您取消该请求并将load.js注入内容脚本。