sessions.getTabValue()

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

即使在标签页关闭/恢复周期中,您也可以检索标签页中的值:也就是说,如果您设置了一个值,然后用户关闭了该标签页,然后使用浏览器的“恢复标签页”功能(例如,通过按 Control+Shift+T)恢复了该标签页,那么您将能够从恢复的标签页中检索该值。但请注意,恢复的标签页的 ID 与原始标签页不同,因此您传递给 getTabValue() 的 ID 将与您传递给 setTabValue() 的 ID 不同,即使它们都指向同一个标签页。

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

语法

js
let retrieving = browser.sessions.getTabValue(
  tabId,    // integer
  key       // string
)

参数

tabId

integer。您尝试检索数据的标签页的 ID。如果 ID 无效,将抛出错误。

key

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

返回值

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

示例

记录所有新创建标签页(包括已恢复的标签页)的“my-key”的值。

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

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

browser.tabs.onCreated.addListener((tab) => {
  browser.sessions
    .getTabValue(tab.id, "my-key")
    .then(onGetResolved, onGetRejected);
});

扩展程序示例

浏览器兼容性