windows.get()

根據 ID 獲取視窗的詳細資訊。詳細資訊將透過回撥函式傳遞。

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

語法

js
let getting = browser.windows.get(
  windowId,              // integer
  getInfo                // optional object
)

引數

windowId

integer。您希望返回的視窗物件的 ID。

getInfo 可選

object。包含用於過濾視窗型別的選項。

populate 可選

boolean。如果設定為 true,則 windows.Window 物件將包含一個 tabs 屬性,其中包含代表該視窗中開啟的標籤頁的 tabs.Tab 物件列表。僅當擴充套件的 manifest 檔案包含 "tabs" 許可權或匹配的 主機許可權 時,Tab 物件才包含 urltitlefavIconUrl 屬性。

windowTypes 可選

array of windows.WindowType 物件。如果設定,返回的 windows.Window 將根據其型別進行過濾。如果未設定,預設過濾器為 ['normal', 'panel', 'popup'],其中 'panel' 視窗型別僅限於擴充套件自身擁有的視窗。

注意:如果提供了 windowTypes,則 getInfowindowTypes 元件將被忽略。自 Firefox 62 起,windowTypes 已被棄用。

返回值

一個 Promise,它將以一個 windows.Window 物件(包含視窗的詳細資訊)來 fulfilled。如果發生任何錯誤,Promise 將會以錯誤訊息被 rejected。

示例

此示例獲取當前視窗並記錄其中包含的標籤頁的 URL。請注意,您需要 "tabs" 許可權或匹配的 主機許可權才能訪問標籤頁 URL。

注意:此示例有些不切實際:在這種情況下,您更可能使用 windows.getCurrent()

js
function logTabs(windowInfo) {
  for (const tabInfo of windowInfo.tabs) {
    console.log(tabInfo.url);
  }
}

function onError(error) {
  console.error(`Error: ${error}`);
}

browser.browserAction.onClicked.addListener((tab) => {
  browser.windows.get(tab.windowId, { populate: true }).then(logTabs, onError);
});

瀏覽器相容性

注意:此 API 基於 Chromium 的 chrome.windows API。本文件源自 Chromium 程式碼中的 windows.json