sessions.restore()
恢复已关闭的标签页或窗口。恢复不仅会重新打开标签页或窗口:它还会恢复标签页的导航历史记录,以便后退/前进按钮可以工作。恢复窗口将恢复窗口关闭时包含的所有标签页。
这是一个返回Promise
的异步函数。
语法
js
let restoringSession = browser.sessions.restore(
sessionId // string
)
参数
sessionId
-
string
。包含要恢复的窗口或标签页的会话 ID 的字符串。这可以在Tab
或Window
对象的sessionId
属性中找到,这些对象位于从sessions.getRecentlyClosed()
返回的Session
中。
返回值
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
示例
这将恢复单个最近关闭的会话,无论是窗口还是标签页。
js
function restoreMostRecent(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);
}
browser.browserAction.onClicked.addListener(() => {
let gettingSessions = browser.sessions.getRecentlyClosed({
maxResults: 1,
});
gettingSessions.then(restoreMostRecent, onError);
});
注意:此 API 基于 Chromium 的chrome.sessions
API。
已知问题
错误 1538119 - 在“恢复上一个会话”后,browser.sessions.getRecentlyClosed() 中的重复 sessionId