extension.getViews()

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

  • 后台页面(若定义了)
  • 任何弹出页面(若定义并已加载)
  • 任何选项页面(若定义并已加载)
  • 任何托管了扩展打包内容的浏览器标签页

在 Firefox 中,如果从隐私浏览窗口的页面调用此方法,例如从隐私窗口中的侧边栏或从隐私窗口打开的弹出窗口,则其返回值将不包括扩展的后台页面。

语法

js
let windows = browser.extension.getViews(
  fetchProperties // 可选的对象
)

参数

fetchProperties 可选

包含如下属性的对象:

type 可选

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

windowId 可选

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

返回值

object 数组(array):Window 对象数组。

浏览器兼容性

BCD tables only load in the browser

示例

获取属于此扩展的所有窗口,并记录它们的 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