windows.getLastFocused()
获取最近获得焦点的窗口——通常是“最上层”的窗口。
这是一个返回 Promise
的异步函数。
语法
js
let gettingWindow = browser.windows.getLastFocused(
getInfo // 可选对象
)
参数
getInfo
可选-
object
.populate
可选-
boolean
。若为true
,则windows.Window
对象将包含tabs
属性,其中包含表示窗口中打开的标签页的tabs.Tab
对象列表。如果扩展的清单文件包含"tabs"
权限或匹配的主机权限,则Tab
对象仅包含url
、title
和favIconUrl
属性。 windowTypes
可选-
windows.WindowType
对象的数组(array
)。如果设置了该参数,则将基于该参数对窗口类型进行筛选返回的windows.Window
对象。如果未设置,则默认筛选器将被设为['normal', 'panel', 'popup']
且'panel'
窗口类型将局限于扩展自己的窗口。
备注:
如果提供,getInfo
中的 windowTypes
属性将被忽略。自 Firefox 62 起,已弃用 windowTypes
的使用。
返回值
一个 Promise
,其会兑现为一个包含最近获得焦点窗口详细信息的 windows.Window
对象。如果发生任何错误则该 promise 将以错误消息拒绝。
浏览器兼容性
示例
获取最近获得焦点的窗口,并记录其包含的标签页。请注意,你需要 "tabs"
权限或匹配的主机权限才能访问标签页的 URL。
js
function logTabs(windowInfo) {
for (const tabInfo of windowInfo.tabs) {
console.log(tabInfo.url);
}
}
function onError(error) {
console.error(`发生错误:${error}`);
}
browser.browserAction.onClicked.addListener((tab) => {
browser.windows.getLastFocused({ populate: true }).then(logTabs, onError);
});
备注:
此 API 基于 Chromium 的 chrome.windows
API。该文档衍生自 Chromium 代码中的 windows.json
。