将我的旧版Firefox扩展程序迁移到最新的Webextension格式。之前,我能够通过以下方式获取活动选项卡的URL:
list($queue, $messageCount, $consumerCount) = $channel->queue_declare(QUEUE_NAME, true);
现在,它不起作用。我看到了tabs.getCurrent()和tabs.Tab - >的一些参考资料。网址,但没有找到如何使用它的单一示例。那么我如何获取活动Firefox选项卡的URL并将其放入变量中以供进一步使用?
谢谢, 浣熊
答案 0 :(得分:11)
假设你有"标签"您的manifest.json中列出的权限,您可以使用以下内容获取后台脚本中当前选项卡的URL:
function logTabs(tabs) {
let tab = tabs[0]; // Safe to assume there will only be one result
console.log(tab.url);
}
function onError(err){
console.error(err);
}
browser.tabs.query({currentWindow: true, active: true}).then(logTabs, onError);
在内容脚本中,您可以使用以下命令获取网址:
let url = window.location.href;
这可能也有效,具体取决于"背景"您关注的背景:
function onGot(tabInfo) {
let url = tabInfo.url; // url is a property from the Tab object, see https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/Tab
}
function onError(error) {
console.error(`Error: ${error}`);
}
browser.tabs.getCurrent().then(onGot, onError);
尽管如此,我建议方法1用于后台脚本,方法2用于内容脚本。
来源:developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/getCurrent
如果您还有其他问题,请随时join the #webextensions channel on irc.mozilla.org。