windows.getAll()
获取所有打开窗口的信息,并将它们传递到回调函数中。
这是一个异步函数,它返回一个 Promise
。
语法
js
let gettingAll = browser.windows.getAll(
getInfo // optional object
)
参数
getInfo
可选-
object
。这控制了检索哪些windows.Window
对象。populate
可选-
boolean
。默认为false
。如果设置为true
,则每个windows.Window
对象将具有一个tabs
属性,该属性包含一个tabs.Tab
对象列表,表示该窗口中的选项卡。Tab
对象将仅包含url
、title
和favIconUrl
属性,前提是扩展的清单文件包含"tabs"
权限或与选项卡 URL 匹配的 主机权限。 windowTypes
可选-
一个
windows.WindowType
对象的array
。如果设置,则返回的windows.Window
对象将根据其类型进行过滤。如果未设置,则默认过滤器设置为['normal', 'panel', 'popup']
,其中'panel'
窗口类型仅限于扩展自身窗口。
返回值
一个 Promise
,它将使用 windows.Window
对象数组来完成,表示与给定条件匹配的所有窗口。如果发生任何错误,则 promise 将被拒绝并显示错误消息。
浏览器兼容性
BCD 表仅在浏览器中加载
示例
记录所有“普通”浏览器窗口中选项卡的 URL。请注意,您需要“选项卡” 权限 或匹配的 主机权限 才能访问选项卡 URL。
js
function logTabsForWindows(windowInfoArray) {
for (const windowInfo of windowInfoArray) {
console.log(`Window: ${windowInfo.id}`);
console.log(windowInfo.tabs.map((tab) => tab.url));
}
}
function onError(error) {
console.error(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener((tab) => {
browser.windows
.getAll({
populate: true,
windowTypes: ["normal"],
})
.then(logTabsForWindows, onError);
});
扩展示例
注意:此 API 基于 Chromium 的 chrome.windows
API。本文件来自 Chromium 代码中的 windows.json
。