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 对象列表。仅当扩展的 manifest 文件包含 "tabs" 权限或匹配的 主机权限 时,Tab 对象才包含 urltitlefavIconUrl 属性。

windowTypes 可选

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

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

返回值

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

示例

此示例获取当前窗口并记录其中包含的标签页的 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: ${error}`);
}

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

浏览器兼容性

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