簡體   English   中英

browser.tabs 在 firefox 擴展中未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM