sessions.removeWindowValue()

删除先前通过调用 sessions.setWindowValue 存储的值。

这是一个返回 Promise 的异步函数。

语法

js
let removing = browser.sessions.removeWindowValue(
  windowId,    // integer
  key          // string
)

参数

windowId

整数。要尝试从中删除数据的窗口的 ID。如果 ID 无效,则会抛出错误。

key

字符串。标识要删除的特定值的键。这需要与先前在 sessions.setWindowValue 中提供的键匹配。

返回值

一个 Promise,如果项目已成功删除,则该 Promise 将解析为无参数。如果调用失败(例如,因为找不到窗口 ID),则该 Promise 将被拒绝并显示错误消息。

浏览器兼容性

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

示例

此代码添加了两个上下文菜单项:一个存储与当前窗口关联的值,另一个删除该值。

js
async function setOnActiveWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  await browser.sessions.setWindowValue(currentWindow.id, "my-key", "my-value");
}

async function removeFromActiveWindow() {
  let currentWindow = await browser.windows.getLastFocused();
  await browser.sessions.removeWindowValue(currentWindow.id, "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") {
    setOnActiveWindow();
  } else {
    removeFromActiveWindow();
  }
});