sessions.getTabValue()

檢索先前透過呼叫 sessions.setTabValue 儲存的值。

即使在標籤頁關閉/恢復週期中,您也可以檢索標籤頁中的值:也就是說,如果您設定了一個值,然後使用者關閉了該標籤頁,然後使用瀏覽器的“恢復標籤頁”功能(例如,透過按 Control+Shift+T)恢復了該標籤頁,那麼您將能夠從恢復的標籤頁中檢索該值。但請注意,恢復的標籤頁的 ID 與原始標籤頁不同,因此您傳遞給 getTabValue() 的 ID 將與您傳遞給 setTabValue() 的 ID 不同,即使它們都指向同一個標籤頁。

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

語法

js
let retrieving = browser.sessions.getTabValue(
  tabId,    // integer
  key       // string
)

引數

tabId

integer。您嘗試檢索資料的標籤頁的 ID。如果 ID 無效,將丟擲錯誤。

key

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

返回值

一個 Promise,如果值存在,它將解析為該值;如果不存在,則解析為 undefined。如果呼叫失敗(例如,因為找不到標籤頁 ID),則 Promise 將被拒絕並顯示錯誤訊息。

示例

記錄所有新建立標籤頁(包括已恢復的標籤頁)的“my-key”的值。

js
function onGetResolved(r) {
  console.log(`success: ${r}`);
}

function onGetRejected(e) {
  console.log(`error: ${e}`);
}

browser.tabs.onCreated.addListener((tab) => {
  browser.sessions
    .getTabValue(tab.id, "my-key")
    .then(onGetResolved, onGetRejected);
});

擴充套件程式示例

瀏覽器相容性