【问题标题】:browser.tabs undefined in Microsoft Edge extension在 Microsoft Edge 扩展中未定义 browser.tabs
【发布时间】:2017-05-08 23:19:57
【问题描述】:

我正在编写 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 未定义而失败?

为什么?

【问题讨论】:

标签: javascript microsoft-edge microsoft-edge-extension


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    您可以查看this site,了解有关如何使用边缘扩展功能的更多信息。

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

    【讨论】:

    • 但它与边缘兼容,因此它应该可以工作,我自己也使用过它
    • 我在我的 OP 中添加了一个 piccy,我想知道我破坏了什么 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 2019-02-28
    • 2017-01-12
    • 2021-09-24
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多