sessions.getRecentlyClosed()

返回一个 Session 对象数组,代表在当前浏览会话(即自浏览器启动以来的时间)中关闭的窗口和选项卡。

这是一个返回 Promise 的异步函数。

语法

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

参数

filter 可选

object。一个 sessions.Filter 对象,用于限制返回的会话集。

返回值

一个 Promise。这将用一个 Session 对象数组来完成,每个数组代表当前浏览会话中最最近关闭的选项卡或窗口,最多 sessions.MAX_SESSION_RESULTS 个或filter参数中包含的数字,以较小的为准。该数组按照选项卡或窗口关闭的逆序给出,因此最近关闭的将位于索引 0。

如果发生错误,则承诺将使用错误消息被拒绝。

浏览器兼容性

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。