在页面加载后从 background.js 获取当前活动标签
Get the current active tab from background.js after pages are already loaded
我正在开发 Firefox WebExtension。但是,我需要获得当前的活动选项卡,以及一些额外的要点。我已经成功地从内容脚本和背景脚本中获取了当前的活动选项卡,但是,当页面加载时,事件就会上升。我的问题是即使在页面加载后我也需要获取活动选项卡。例如,我在浏览器中有 2 个选项卡,我在加载它们时设法获取了它们的 URL,但是当我稍后在它们之间导航时(当它们已经加载并打开时)- 我没有得到任何信息.我已经设法使用 Alarm(在后台脚本中)解决了这个问题,它将查询当前的活动选项卡并给我所需的结果。
但是这个问题有没有更好的办法呢?我怎样才能在没有警报的情况下做到这一点?
您可以随时通过tabs.query()
从后台脚本获取活动标签
const querying = browser.tabs.query({currentWindow: true, active: true});
querying.then(logTabs, onError);
评论更新
这就是您从后台获取活动选项卡的方式。
时间由你决定。您可以收听 events 以了解何时 运行 代码,例如:
- tabs.onActivated
- tabs.onAttached
- tabs.onCreated
- tabs.onDetached
- tabs.onHighlighted
- tabs.onMoved
- tabs.onRemoved
- tabs.onReplaced
- tabs.onUpdated
- tabs.onZoomChange
还有一些事件可以从内容脚本触发并使用 runtime.sendMessage() 发送到后台脚本。
这完全取决于具体情况以及您希望何时触发代码。
我正在开发 Firefox WebExtension。但是,我需要获得当前的活动选项卡,以及一些额外的要点。我已经成功地从内容脚本和背景脚本中获取了当前的活动选项卡,但是,当页面加载时,事件就会上升。我的问题是即使在页面加载后我也需要获取活动选项卡。例如,我在浏览器中有 2 个选项卡,我在加载它们时设法获取了它们的 URL,但是当我稍后在它们之间导航时(当它们已经加载并打开时)- 我没有得到任何信息.我已经设法使用 Alarm(在后台脚本中)解决了这个问题,它将查询当前的活动选项卡并给我所需的结果。
但是这个问题有没有更好的办法呢?我怎样才能在没有警报的情况下做到这一点?
您可以随时通过tabs.query()
从后台脚本获取活动标签const querying = browser.tabs.query({currentWindow: true, active: true});
querying.then(logTabs, onError);
评论更新
这就是您从后台获取活动选项卡的方式。 时间由你决定。您可以收听 events 以了解何时 运行 代码,例如:
- tabs.onActivated
- tabs.onAttached
- tabs.onCreated
- tabs.onDetached
- tabs.onHighlighted
- tabs.onMoved
- tabs.onRemoved
- tabs.onReplaced
- tabs.onUpdated
- tabs.onZoomChange
还有一些事件可以从内容脚本触发并使用 runtime.sendMessage() 发送到后台脚本。
这完全取决于具体情况以及您希望何时触发代码。