为什么chrome.tabs在后台页面中未定义?

时间:2017-08-12 13:12:22

标签: javascript google-chrome-extension

我正在尝试编写Google Chrome扩展程序。

documentation甚至sample code表示后台页面可以使用chrome.tabs.executeScript方法在活动标签页上运行JavaScript,但chrome.tabs始终为undefined当我打破调试器时。

此行为在我的代码和Google示例代码中都很明显。

真实问题:如何在Chrome扩展程序的后台页面上的活动标签页上运行JavaScript?

background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
  debugger;
  // chrome.tabs is undefined here
  chrome.tabs.executeScript({
    code: "console.log('hi')"
  });
});

manifest.js:

{
  "manifest_version": 2,

  "name": "Hello World",
  "description": "Says 'hello' to the world.",
  "version": "0.1",

  "permissions": ["tabs", "activeTab"],

  "browser_action": {
    "default_title": "hi"
  },

  "background": {
    "scripts": ["background.js"]
  }
}

我尝试过的事情:

  • 将清单文件中persistent的{​​{1}}标记设置为backgroundfalsetrue"false"
  • 包含"true"权限

当我尝试访问"tabs"时,运行时会抛出此错误:

chrome.tabs

0 个答案:

没有答案