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 将以错误消息拒绝。
浏览器兼容性
BCD tables only load in the browser
示例
获取最近获得焦点的窗口,并记录其包含的标签页。请注意,你需要 "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
。