sessions.getWindowValue()

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

即使在視窗關閉/恢復週期中,您也可以從視窗檢索值:這意味著如果您設定了一個值,然後使用者關閉了該視窗,然後使用瀏覽器的“恢復視窗”功能(例如,按 Control+Shift+N)恢復了該視窗,那麼您將能夠從恢復的視窗中檢索該值。但請注意,恢復的視窗不會獲得與原始視窗相同的 ID,因此您傳遞給 getWindowValue() 的 ID 將與您傳遞給 setWindowValue() 的 ID 不同,儘管它們都指向同一個視窗。

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

語法

js
let retrieving = browser.sessions.getWindowValue(
  windowId,    // integer
  key          // string
)

引數

windowId

integer。您要檢索資料的視窗的 ID。如果 ID 無效,則會丟擲錯誤。

key

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

返回值

一個 Promise,如果值存在,它將用該值解析;如果不存在,則用 undefined 解析。如果呼叫失敗(例如,因為找不到視窗 ID),則 Promise 將以錯誤訊息被拒絕。

示例

記錄所有新建立視窗(包括任何已恢復的視窗)的“my-key”的值。

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

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

browser.windows.onCreated.addListener((window) => {
  browser.sessions
    .getWindowValue(window.id, "my-key")
    .then(onGetResolved, onGetRejected);
});

瀏覽器相容性