sessions.removeTabValue()

移除先前透過呼叫 sessions.setTabValue 儲存的值。

這是一個非同步函式,返回一個 Promise

語法

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

引數

tabId

integer。要嘗試移除資料的標籤頁 ID。如果 ID 無效,則會丟擲錯誤。

key

string。用於標識要移除的特定值的鍵。這需要與之前在 sessions.setTabValue 中提供的鍵匹配。

返回值

一個 Promise,如果專案已成功移除,則會解析(resolve)且不帶任何引數。如果呼叫失敗(例如,因為找不到標籤頁 ID),則 Promise 將會以錯誤訊息被拒絕(reject)。

示例

此程式碼添加了兩個上下文選單項:一個儲存與當前標籤頁關聯的值,另一個則移除它

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

瀏覽器相容性