extension.getViews()

返回当前扩展程序中运行的每个页面的 Window 对象数组。例如,这包括:

  • 如果定义了背景页,则包括背景页
  • 如果定义并加载了任何弹出页面,则包括这些弹出页面
  • 如果定义并加载了任何选项页面,则包括这些选项页面
  • 包含该扩展程序打包内容的浏览器标签页

在 Firefox 中,如果此方法是从私有浏览窗口的一部分页面(例如,私有窗口中的侧边栏或从私有窗口打开的弹出窗口)调用,则其返回值不包括该扩展程序的背景页。

语法

js
let windows = browser.extension.getViews(
  fetchProperties // optional object
)

参数

fetchProperties 可选

具有以下属性的对象:

type 可选

string。一个 extension.ViewType,指示要获取的视图类型。如果省略,此函数将返回所有视图。

windowId 可选

integer。用于限制搜索范围的窗口。如果省略,此函数将返回所有视图。在 Firefox 92 及更早版本中,侧边栏视图不匹配,因此不返回。

返回值

objectarrayWindow 对象数组。

示例

获取此扩展程序的所有窗口,并记录它们的 URL

js
const windows = browser.extension.getViews();

for (const extensionWindow of windows) {
  console.log(extensionWindow.location.href);
}

仅获取包含该扩展程序打包内容的浏览器标签页中的窗口

js
const windows = browser.extension.getViews({ type: "tab" });

仅获取弹出窗口中的窗口

js
const windows = browser.extension.getViews({ type: "popup" });

浏览器兼容性

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