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 将被拒绝并显示错误消息。

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

示例

记录所有新创建选项卡的“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);
});

示例扩展