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