windows.getLastFocused()

获取最近获得焦点的窗口 - 通常是“最上面”的窗口。

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

语法

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

参数

getInfo 可选

对象.

populate 可选

boolean。如果为 true,则 windows.Window 对象将具有一个 tabs 属性,其中包含 tabs.Tab 对象的列表,这些对象表示窗口中的标签。如果扩展的清单文件包含 "tabs" 权限或 主机权限 匹配标签的 URL,则 Tab 对象仅包含 urltitlefavIconUrl 属性。

windowTypes 可选

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

注意:如果提供,则 getInfowindowTypes 组件将被忽略。从 Firefox 62 开始,使用 windowTypes 已被弃用。

返回值

一个 Promise,它将使用包含最近获得焦点的窗口详细信息的 windows.Window 对象来实现。如果发生任何错误,则 promise 将使用错误消息拒绝。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

获取最近获得焦点的窗口,并记录它包含的标签。请注意,您需要“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