页面加载后,从background.js获取当前的活动标签

时间:2019-01-07 15:40:58

标签: firefox firefox-webextensions

我正在开发Firefox WebExtension。但是,我需要获得当前的活动选项卡,还有一些其他要点。我已经成功地从内容脚本和backgrounde脚本中获取了当前的活动标签,但是,加载页面时会引发事件。我的问题的重点是,即使在页面加载后,也需要获取活动标签。例如,我在浏览器中有2个标签,加载时设法获取它们的URL,但是稍后在它们之间导航时(当它们已加载并打开时)-我没有任何信息。我设法使用Alarm(在后台脚本中)解决了这个问题,它将查询当前的活动标签并提供所需的结果。

但是有没有更好的方法来解决这个问题?我该怎么办而不会发出警报?

1 个答案:

答案 0 :(得分:2)

您可以随时使用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()发送到后台脚本。

这完全取决于情况以及您何时触发代码。