sessions.onChanged
每当关闭的标签页或窗口列表发生更改时触发。
语法
js
browser.sessions.onChanged.addListener(listener)
browser.sessions.onChanged.removeListener(listener)
browser.sessions.onChanged.hasListener(listener)
事件具有三个函数
addListener(listener)
-
向此事件添加侦听器。
removeListener(listener)
-
停止侦听此事件。
listener
参数是要移除的侦听器。 hasListener(listener)
-
检查
listener
是否为此事件注册。如果正在侦听,则返回true
,否则返回false
。
addListener 语法
参数
listener
-
当此事件发生时调用的函数。它不带任何参数。
浏览器兼容性
BCD 表格仅在浏览器中加载
示例
这个非常烦人的扩展会侦听 onChanged
,然后立即恢复最近关闭的会话,从而导致无法关闭窗口或标签页
js
function restoreSession(sessionInfos) {
if (!sessionInfos.length) {
console.log("No sessions found");
return;
}
let sessionInfo = sessionInfos[0];
if (sessionInfo.tab) {
browser.sessions.restore(sessionInfo.tab.sessionId);
} else {
browser.sessions.restore(sessionInfo.window.sessionId);
}
}
function onError(error) {
console.log(error);
}
function restoreMostRecent() {
let gettingSessions = browser.sessions.getRecentlyClosed({
maxResults: 1,
});
gettingSessions.then(restoreSession, onError);
}
browser.sessions.onChanged.addListener(restoreMostRecent);
注意: 此 API 基于 Chromium 的 chrome.sessions
API。