2

我正在编写 Microsoft Edge 扩展。

我有以下清单文件:

{
  "author": "",
  "description": "Test",
  "name": "Test",
  "version": "1.0",
    "permissions": [        
        "tabs",
        "<all_urls>"
    ],
  "content_scripts": [{
    "js": ["script.js"],
    "matches": ["*://*/*"]
  }],
  "icons": {
    "48": "icons/icon-40x40.png"
  }
}

当我放入我的 script.js 时:

var currentTab = browser.tabs.getCurrent();
alert(currentTab.index);

它失败是因为 browser.tabs 未定义?

为什么?

在此处输入图像描述

4

2 回答 2

0

这在内容脚本中是不可能的,因为它有限制。

browser.tabs API 只能在后台脚本和浏览器操作弹出脚本中使用/可用。为了实现您的预​​期功能,您可以向后台脚本发送消息,并且在后台脚本中您可以使用 browser.tabs API。

于 2018-06-13T12:27:48.243 回答
-1

您可以在有浏览器选项卡的上下文中调用此函数browser.tabs.getCurrent(),例如选项页面。如果您从后台脚本或弹出窗口调用它,它将返回 undefined。但是正如我看到的,您已经在内容脚本中使用了这个函数,所以它应该不是问题。

这是一个返回 Promise 的异步函数。

您可以查看此站点以获取有关如何使用 Edge Extension 功能的更多信息。

另外你不应该将作者字段留空,它可能会给出一些错误。所以试着在里面写下你的名字。

于 2017-06-08T07:35:58.677 回答