sessions.removeWindowValue()

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

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

语法

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

参数

windowId

integer。您尝试删除数据的窗口 ID。如果 ID 无效,将抛出错误。

key

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

返回值

一个 Promise,如果项目已成功删除,则会以不带参数的形式解析。如果调用失败(例如,因为找不到窗口 ID),则 Promise 将以错误消息被拒绝。

示例

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

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();
  }
});

浏览器兼容性