sessions.restore()
恢复已关闭的标签页或窗口。恢复不仅仅是重新打开标签页或窗口:它还会恢复标签页的浏览历史,以便前进/后退按钮能够正常工作。恢复一个窗口将恢复该窗口关闭时所包含的所有标签页。
这是一个异步函数,返回一个 Promise。
语法
js
let restoringSession = browser.sessions.restore(
sessionId // string
)
参数
sessionId-
string。一个字符串,包含要恢复的窗口或标签页的会话 ID。这可以在Tab或Window对象的sessionId属性中找到,该对象来自sessions.getRecentlyClosed()返回的Session。
返回值
示例
这会恢复最近关闭的单个会话,无论是窗口还是标签页
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。
已知问题
Bug 1538119 - "恢复上次会话" 后 browser.sessions.getRecentlyClosed() 中出现重复的 sessionId