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