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。