这是我的manifest.json
文件:
{
"manifest_version": 2,
"permissions": ["tabs", "storage", "webRequest", "<all_urls>"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["assets/js/jquery-3.3.1.min.js", "blocker.js"]
}
],
"background": {
"scripts": ["background.js"]
},
"options_ui": {
"page": "background-page.html",
"browser_style": true
}
}
和我的blocker.js
文件:
function cleanPage(tabId, changeInfo, tabInfo) {
console.log("I am in cleanPage");
}
try {
console.log("browser : ");
console.log(browser);
console.log("browser.tabs : " + browser.tabs);
browser.tabs.onUpdated.addListener(cleanPage);
} catch(err) {
console.log("err : ", err);
}
我收到此错误:
browser.tabs : undefined blocker.js:114:3
err : TypeError: "browser.tabs is undefined"
我的设置:
-Mozilla Firefox 65.0.1
-Ubuntu 18.04
由于我完全按照Mozilla Tutorial中的说明进行操作,因此我不太了解此错误。有谁知道为什么会出现此错误?
答案 0 :(得分:0)
我的 blocker.js 文件位于content_scripts
中。我将其移至background_scripts
并成功。
只有background_scripts
中的文件可以访问browser.tabs
API。
我新的 manifest.json 文件:
{
"manifest_version": 2,
"permissions": ["tabs", "storage", "webRequest", "<all_urls>"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": []
}
],
"background": {
"scripts": ["assets/js/jquery-3.3.1.min.js", "background.js", "blocker.js"]
},
"options_ui": {
"page": "background-page.html",
"browser_style": true
}
}