sessions.getRecentlyClosed()

返回一個 Session 物件的陣列,表示當前瀏覽會話中(即自瀏覽器啟動以來的時間)關閉的視窗和標籤頁。

這是一個非同步函式,返回一個 Promise

語法

js
let gettingSessions = browser.sessions.getRecentlyClosed(
  filter             // optional object
)

引數

filter 可選

object。一個 sessions.Filter 物件,用於限制返回的會話集。

返回值

一個 Promise。它將以一個 Session 物件陣列的形式得到滿足,每個物件代表當前瀏覽會話中最近關閉的標籤頁或視窗,最多不超過 sessions.MAX_SESSION_RESULTSfilter 引數中包含的數量,以較小者為準。該陣列的順序與標籤頁或視窗關閉的順序相反,因此最近關閉的將在索引 0 處。

如果發生錯誤,Promise 將被拒絕並附帶錯誤訊息。

示例

此程式碼會恢復最近關閉的單個會話,無論是標籤頁還是視窗

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。