windows.getCurrent()
获取当前浏览器窗口,并将窗口详细信息传递到回调函数中。
"当前"窗口不一定与当前聚焦的窗口相同。如果此函数从后台脚本中调用,则它返回当前聚焦的窗口。但如果它从其文档与特定浏览器窗口关联的脚本中调用,则它返回该浏览器窗口。例如,如果浏览器显示侧边栏,则每个浏览器窗口都有自己的侧边栏文档实例。如果在侧边栏文档中运行的脚本调用getCurrent()
,则它将返回该侧边栏文档的窗口。
这是一个异步函数,它返回一个Promise
。
语法
let gettingCurrent = browser.windows.getCurrent(
getInfo // optional object
)
参数
getInfo
可选-
对象
.populate
可选-
boolean
。如果为 true,则windows.Window
对象将具有一个tabs
属性,该属性包含一个tabs.Tab
对象的列表,表示窗口中的选项卡。Tab
对象仅包含url
、title
和favIconUrl
属性,如果扩展的清单文件包含"tabs"
权限或与选项卡的 URL 匹配的主机权限。 windowTypes
已弃用 可选-
一个
对象的windows.WindowType
数组
。如果设置,则返回的windows.Window
将根据其类型进行过滤。如果未设置,则默认过滤器设置为['normal', 'panel', 'popup']
,其中'panel'
窗口类型仅限于扩展程序自己的窗口。
注意:如果提供,则忽略getInfo
的windowTypes
组件。从 Firefox 62 开始,windowTypes
的使用已弃用。
返回值
一个Promise
,它将使用包含窗口详细信息的windows.Window
对象来完成。如果发生任何错误,则 promise 将使用错误消息被拒绝。
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
示例
当用户点击浏览器操作的图标时,此示例获取当前窗口并记录其包含的选项卡的 URL。请注意,您需要“选项卡”权限或匹配的主机权限才能访问选项卡 URL。
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.getCurrent({ populate: true }).then(logTabs, onError);
});
扩展示例
注意:此 API 基于 Chromium 的chrome.windows
API。此文档源自 Chromium 代码中的windows.json
。