windows.get()

获取给定 ID 的窗口的详细信息。详细信息将传递到回调函数中。

这是一个返回 Promise 的异步函数。

语法

js
let getting = browser.windows.get(
  windowId,              // 整型
  getInfo                // 可选对象
)

参数

windowId

integer。你希望返回的 Window 对象的 ID。

getInfo 可选

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

populate 可选

boolean。若为 true,则 windows.Window 对象将包含 tabs 属性,其中包含表示窗口中打开的标签页的 tabs.Tab 对象列表。只有在扩展的清单文件包含 "tabs" 权限或匹配的主机权限Tab 对象才会包含 urltitlefavIconUrl 属性。

windowTypes 可选

windows.WindowType 对象的数组(array)。如果设置了该参数,则将基于该参数对窗口类型进行筛选返回的 windows.Window 对象。如果未设置,则默认筛选器将被设为 ['normal', 'panel', 'popup']'panel' 窗口类型将局限于扩展自己的窗口。

备注: 如果提供,getInfo 中的 windowTypes 属性将被忽略。自 Firefox 62 起,已弃用 windowTypes 的使用。

返回值

一个 Promise,其会兑现为一个包含窗口详细信息的 windows.Window 对象。如果发生任何错误则该 promise 将以错误消息拒绝。

浏览器兼容性

BCD tables only load in the browser

示例

此示例获取当前窗口并记录其包含的标签页的 URL。请注意,你需要 "tabs" 权限或匹配的主机权限才能访问标签页的 URL。

备注: 该示例有点不切实际:在这种情况下,你更可能会使用 windows.getCurrent()

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

function onError(error) {
  console.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