windows.get()

获取有关窗口的详细信息,提供其 ID。详细信息将传递给回调函数。

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

语法

js
let getting = browser.windows.get(
  windowId,              // integer
  getInfo                // optional object
)

参数

windowId

integer. 要返回的窗口对象的 ID。

getInfo 可选

object. 包含用于筛选窗口类型的选项。

populate 可选

boolean. 如果为 true,则 windows.Window 对象将具有一个 tabs 属性,该属性包含一个 tabs.Tab 对象列表,代表在窗口中打开的选项卡。如果扩展的清单文件包含 "tabs" 权限或匹配的 主机权限,则 Tab 对象仅包含 urltitlefavIconUrl 属性。

windowTypes 可选

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

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

返回值

一个 Promise,它将使用一个 windows.Window 对象来实现,该对象包含窗口的详细信息。如果发生任何错误,则该承诺将被拒绝,并显示错误消息。

浏览器兼容性

BCD 表仅在浏览器中加载

示例

此示例获取当前窗口并记录它包含的选项卡的 URL。请注意,您需要“选项卡” 权限 或匹配的 主机权限 才能访问选项卡 URL。

注意:此示例有些不切实际:在这种情况下,您可能更倾向于使用 windows.getCurrent()

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.get(tab.windowId, { populate: true }).then(logTabs, onError);
});

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