windows.getAll()

获取所有打开窗口的信息,并将它们传递到回调函数中。

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

语法

js
let gettingAll = browser.windows.getAll(
  getInfo                // optional object
)

参数

getInfo 可选

object。这控制了检索哪些 windows.Window 对象。

populate 可选

boolean。默认为 false。如果设置为 true,则每个 windows.Window 对象将具有一个 tabs 属性,该属性包含一个 tabs.Tab 对象列表,表示该窗口中的选项卡。Tab 对象将仅包含 urltitlefavIconUrl 属性,前提是扩展的清单文件包含 "tabs" 权限或与选项卡 URL 匹配的 主机权限

windowTypes 可选

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

返回值

一个 Promise,它将使用 windows.Window 对象数组来完成,表示与给定条件匹配的所有窗口。如果发生任何错误,则 promise 将被拒绝并显示错误消息。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

记录所有“普通”浏览器窗口中选项卡的 URL。请注意,您需要“选项卡” 权限 或匹配的 主机权限 才能访问选项卡 URL。

js
function logTabsForWindows(windowInfoArray) {
  for (const windowInfo of windowInfoArray) {
    console.log(`Window: ${windowInfo.id}`);
    console.log(windowInfo.tabs.map((tab) => tab.url));
  }
}

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

browser.browserAction.onClicked.addListener((tab) => {
  browser.windows
    .getAll({
      populate: true,
      windowTypes: ["normal"],
    })
    .then(logTabsForWindows, onError);
});

扩展示例

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