windows.getLastFocused()

获取最近获得焦点的窗口 — 通常是“最顶层”的窗口。

这是一个异步函数,返回一个 Promise

语法

js
let gettingWindow = browser.windows.getLastFocused(
  getInfo               // optional object
)

参数

getInfo 可选

object.

populate 可选

boolean。如果为 true,则 windows.Window 对象将具有一个 tabs 属性,其中包含表示窗口中选项卡的 tabs.Tab 对象列表。仅当扩展的 manifest 文件包含 "tabs" 权限或与选项卡 URL 匹配的 主机权限时,Tab 对象才仅包含 urltitlefavIconUrl 属性。

windowTypes 可选

一个 windows.WindowType 对象的 array。如果设置,则返回的 windows.Window 将根据其类型进行过滤。如果未设置,默认过滤器将设置为 ['normal', 'panel', 'popup'],其中 'panel' 窗口类型仅限于扩展自身的窗口。

注意:如果提供了 windowTypes,则 getInfowindowTypes 组件将被忽略。自 Firefox 62 起,windowTypes 已被弃用。

返回值

一个 Promise,它将以一个包含最后一个焦点窗口详细信息的 windows.Window 对象来 fulfilled。如果发生任何错误,Promise 将以错误消息被 rejected。

示例

获取最后一个获得焦点的窗口,并记录其中包含的选项卡。请注意,您需要 "tabs" 权限或匹配的 主机权限才能访问选项卡 URL。

js
function logTabs(windowInfo) {
  for (const tabInfo of windowInfo.tabs) {
    console.log(tabInfo.url);
  }
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.browserAction.onClicked.addListener((tab) => {
  browser.windows.getLastFocused({ populate: true }).then(logTabs, onError);
});

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.windows API。本文档源自 Chromium 代码中的 windows.json