sessions.getWindowValue()
检索先前通过调用 sessions.setWindowValue
存储的值。
即使在关闭/恢复循环中,您也可以从窗口中检索值:这意味着,如果您设置了一个值,然后用户关闭了窗口,然后使用浏览器的“恢复窗口”功能(例如,按 Control+Shift+N)恢复了窗口,那么您将能够从恢复的窗口中检索该值。但是请注意,恢复的窗口不会获得与原始窗口相同的 ID,因此您传递给 getWindowValue()
的 ID 将与您传递给 setWindowValue()
的 ID 不同,即使它们都引用同一个窗口。
这是一个异步函数,它返回一个 Promise
。
语法
js
let retrieving = browser.sessions.getWindowValue(
windowId, // integer
key // string
)
参数
windowId
-
整数
。您尝试检索其数据的窗口的 ID。如果 ID 无效,则会抛出错误。 key
-
字符串
。用于识别要检索的特定值的键。这需要与之前在sessions.setWindowValue
中提供的键匹配。
返回值
一个 Promise
,如果值存在,则解析为该值,如果值不存在,则解析为 undefined
。如果调用失败(例如,因为找不到窗口 ID),则 promise 将被拒绝并显示错误消息。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
示例
记录所有新创建窗口(包括任何已恢复的窗口)中“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);
});