首页 > 解决方案 > 从 Firefox 扩展浏览器操作后台脚本访问当前文档

问题描述

我正在为 Firefox 构建一个工具栏按钮扩展。document在我的后台脚本中,单击工具栏按钮时,我需要访问当前选项卡的 。

window在此上下文中是扩展的窗口,而不是当前选项卡。其他功能如browser.tabs.getCurrent()在后台脚本中不起作用。

我知道这是可能的,因为其他扩展可以访问当前文档(例如 1Password 将识别和填充input元素。)

注意:之前关于 SO 的所有关于 2010 年、2012 年等相同功能的问题不再有价值。

标签: firefoxfirefox-addon-sdkfirefox-addon-webextensionsbrowser-action

解决方案


要在当前窗口中获取活动选项卡,您可以使用tabs.query()

例如:

browser.tabs.query({currentWindow: true, active: true})

这就是如何获得活动标签。

选项卡与内容页面(网页)分开。为了与上下文页面交互,您需要将代码注入页面。

例如使用tabs.executeScript()

当您注入活动选项卡时,不再需要单独获取活动选项卡,因为如果省略,tabs.executeScript()将注入活动选项卡。tabId

例如:

browser.tabs.executeScript({
  code: `console.log('location:', window.location.href);`
});

推荐阅读