sessions.setWindowValue()

将键/值对存储起来,并将其与指定的窗口关联。之后,您可以使用 sessions.getWindowValue 检索此值。

请注意,此数据仅对设置它的扩展可见,对任何其他扩展都不可见。

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

语法

js
let storing = browser.sessions.setWindowValue(
  windowId,    // integer
  key,         // string
  value        // string or object
)

参数

windowId

integer。您希望将数据关联到的窗口的 ID。如果 ID 无效,则会抛出错误。

key

string。您稍后可用于检索此特定数据值的键。

value

stringobject。如果为对象,则会对其进行 字符串化,因此例如对象方法将被省略。如果此处提供了函数,它将存储为值 null

返回值

一个 Promise,如果调用成功,它将以 no arguments 解析。如果调用失败(例如,因为找不到窗口 ID),则 Promise 将以错误消息被拒绝。

示例

当用户选择菜单项时,在活动窗口上设置一个值。请注意,您需要 "menus" 权限 才能运行此示例

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

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

browser.menus.onClicked.addListener(setOnActiveWindow);

浏览器兼容性