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
对象列表,代表在窗口中打开的选项卡。如果扩展的清单文件包含"tabs"
权限或匹配的 主机权限,则Tab
对象仅包含url
、title
和favIconUrl
属性。 windowTypes
可选-
array
ofwindows.WindowType
对象。如果设置,则返回的windows.Window
将根据其类型进行筛选。如果未设置,则默认过滤器设置为['normal', 'panel', 'popup']
,其中'panel'
窗口类型仅限于扩展程序自己的窗口。
注意:如果提供,则 getInfo
的 windowTypes
部分将被忽略。从 Firefox 62 开始,windowTypes
的使用已弃用。
返回值
一个 Promise
,它将使用一个 windows.Window
对象来实现,该对象包含窗口的详细信息。如果发生任何错误,则该承诺将被拒绝,并显示错误消息。
浏览器兼容性
BCD 表仅在浏览器中加载
示例
此示例获取当前窗口并记录它包含的选项卡的 URL。请注意,您需要“选项卡” 权限 或匹配的 主机权限 才能访问选项卡 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
。