sessions.getWindowValue()

检索先前通过调用 sessions.setWindowValue 存储的值。

即使在窗口关闭/恢复周期中,您也可以从窗口检索值:这意味着如果您设置了一个值,然后用户关闭了该窗口,然后使用浏览器的“恢复窗口”功能(例如,按 Control+Shift+N)恢复了该窗口,那么您将能够从恢复的窗口中检索该值。但请注意,恢复的窗口不会获得与原始窗口相同的 ID,因此您传递给 getWindowValue() 的 ID 将与您传递给 setWindowValue() 的 ID 不同,尽管它们都指向同一个窗口。

这是一个异步函数,返回一个 Promise

语法

js
let retrieving = browser.sessions.getWindowValue(
  windowId,    // integer
  key          // string
)

参数

windowId

integer。您要检索数据的窗口的 ID。如果 ID 无效,则会抛出错误。

key

string。标识要检索的特定值的键。这需要与先前在 sessions.setWindowValue 中提供的键匹配。

返回值

一个 Promise,如果值存在,它将用该值解析;如果不存在,则用 undefined 解析。如果调用失败(例如,因为找不到窗口 ID),则 Promise 将以错误消息被拒绝。

示例

记录所有新创建窗口(包括任何已恢复的窗口)的“my-key”的值。

js
function onGetResolved(r) {
  console.log(`success: ${r}`);
}

function onGetRejected(e) {
  console.log(`error: ${e}`);
}

browser.windows.onCreated.addListener((window) => {
  browser.sessions
    .getWindowValue(window.id, "my-key")
    .then(onGetResolved, onGetRejected);
});

浏览器兼容性