sessions.removeTabValue()

移除之前通过调用 sessions.setTabValue 存储的值。

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

语法

js
let removing = browser.sessions.removeTabValue(
  tabId,    // integer
  key       // string
)

参数

tabId

整数。要移除其数据的选项卡的 ID。如果 ID 无效,则会抛出错误。

key

字符串。用于标识要移除的特定值的键。这需要与之前在 sessions.setTabValue 中提供的键匹配。

返回值

一个 Promise,如果项目已成功移除,则解析为不带参数的结果。如果调用失败(例如,因为找不到选项卡 ID),则该 Promise 将会拒绝并返回错误消息。

浏览器兼容性

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

示例

此代码添加了两个上下文菜单项:一个存储与当前选项卡关联的值,另一个移除它。

js
async function setOnActiveTab() {
  let tabArray = await browser.tabs.query({
    currentWindow: true,
    active: true,
  });
  let tabId = tabArray[0].id;
  await browser.sessions.setTabValue(tabId, "my-key", "my-value");
}

async function removeFromActiveTab() {
  let tabArray = await browser.tabs.query({
    currentWindow: true,
    active: true,
  });
  let tabId = tabArray[0].id;
  await browser.sessions.removeTabValue(tabId, "my-key");
}

browser.menus.create({
  id: "add-my-item",
  title: "add item",
  contexts: ["all"],
});

browser.menus.create({
  id: "remove-my-item",
  title: "remove item",
  contexts: ["all"],
});

browser.menus.onClicked.addListener((info) => {
  if (info.menuItemId === "add-my-item") {
    setOnActiveTab();
  } else {
    removeFromActiveTab();
  }
});