windows.getLastFocused()
获取最近获得焦点的窗口 - 通常是“最上面”的窗口。
这是一个异步函数,它返回一个 Promise
。
语法
js
let gettingWindow = browser.windows.getLastFocused(
getInfo // optional object
)
参数
getInfo
可选-
对象
.populate
可选-
boolean
。如果为true
,则windows.Window
对象将具有一个tabs
属性,其中包含tabs.Tab
对象的列表,这些对象表示窗口中的标签。如果扩展的清单文件包含"tabs"
权限或 主机权限 匹配标签的 URL,则Tab
对象仅包含url
、title
和favIconUrl
属性。 windowTypes
可选-
一个
windows.WindowType
对象的数组
。如果设置,则返回的windows.Window
将根据其类型进行过滤。如果未设置,则默认过滤器设置为['normal', 'panel', 'popup']
,其中'panel'
窗口类型仅限于扩展自己的窗口。
注意:如果提供,则 getInfo
的 windowTypes
组件将被忽略。从 Firefox 62 开始,使用 windowTypes
已被弃用。
返回值
一个 Promise
,它将使用包含最近获得焦点的窗口详细信息的 windows.Window
对象来实现。如果发生任何错误,则 promise 将使用错误消息拒绝。
浏览器兼容性
BCD 表仅在浏览器中加载
示例
获取最近获得焦点的窗口,并记录它包含的标签。请注意,您需要“tabs” 权限 或匹配的 主机权限 才能访问标签 URL。
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.getLastFocused({ populate: true }).then(logTabs, onError);
});
注意:此 API 基于 Chromium 的 chrome.windows
API。此文档源自 Chromium 代码中的 windows.json
。