[英]browser.tabs is undefined in firefox extension
這是我的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 教程中所寫的。 有誰知道為什么會出現這個錯誤?
我的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
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.