从 Firefox 扩展浏览器操作后台脚本访问当前文档
Access current document from Firefox extension browser action background script
我正在为 Firefox 构建一个 toolbar button 扩展。在我的后台脚本中,我需要在单击工具栏按钮时访问当前选项卡的 document
。
window
在此上下文中是扩展名的 window,而不是当前选项卡。 browser.tabs.getCurrent()
等其他函数在后台脚本中不起作用。
我知道这是可能的,因为其他扩展可以访问当前文档(例如 1Password 将识别并填充 input
元素。)
注意:之前关于 2010 年、2012 年等相同功能的所有问题都不再有价值。
要获取当前 window 中的活动选项卡,您可以使用 tabs.query()
例如:
browser.tabs.query({currentWindow: true, active: true})
这就是获取活动标签的方法。
选项卡与内容页(网页)是分开的。为了与上下文页面交互,您需要将代码注入页面。
当您注入活动标签时,不再需要单独获取活动标签,因为如果省略 tabId
,tabs.executeScript()
将注入活动标签。
例如:
browser.tabs.executeScript({
code: `console.log('location:', window.location.href);`
});
我正在为 Firefox 构建一个 toolbar button 扩展。在我的后台脚本中,我需要在单击工具栏按钮时访问当前选项卡的 document
。
window
在此上下文中是扩展名的 window,而不是当前选项卡。 browser.tabs.getCurrent()
等其他函数在后台脚本中不起作用。
我知道这是可能的,因为其他扩展可以访问当前文档(例如 1Password 将识别并填充 input
元素。)
注意:之前关于 2010 年、2012 年等相同功能的所有问题都不再有价值。
要获取当前 window 中的活动选项卡,您可以使用 tabs.query()
例如:
browser.tabs.query({currentWindow: true, active: true})
这就是获取活动标签的方法。
选项卡与内容页(网页)是分开的。为了与上下文页面交互,您需要将代码注入页面。
当您注入活动标签时,不再需要单独获取活动标签,因为如果省略 tabId
,tabs.executeScript()
将注入活动标签。
例如:
browser.tabs.executeScript({
code: `console.log('location:', window.location.href);`
});