我正在编写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未定义?
为什么?
答案 0 :(得分:0)
这是内容脚本无法实现的,因为它有局限性。
browser.tabs API只能在后台脚本和浏览器操作弹出脚本中使用/可用。要实现预期的功能,您可以向后台脚本发送消息,在后台脚本中可以使用browser.tabs API。
答案 1 :(得分:-1)
您可以在有浏览器标签的上下文中调用此函数browser.tabs.getCurrent()
,例如选项页面。如果你从后台脚本或弹出窗口调用它,它将返回undefined.But,因为我看到你在内容脚本中使用了这个函数,所以它不应该是一个问题。
这是一个返回Promise的异步函数。
您可以查看this site以获取有关如何使用Edge Extension功能的更多信息。
此外,您不应将作者字段留空,否则可能会出错。所以试着在里面写下你的名字。