windows.getCurrent()

獲取當前瀏覽器視窗,並將其詳細資訊傳遞給回撥函式。

“當前”視窗不一定等同於當前焦點所在的視窗。如果此函式是從後臺指令碼呼叫的,則它返回當前焦點所在的視窗。但如果它是由與特定瀏覽器視窗關聯的文件的指令碼呼叫的,則它返回該瀏覽器視窗。例如,如果瀏覽器正在顯示側邊欄,則每個瀏覽器視窗都有其自己的側邊欄文件例項。如果側邊欄文件中執行的指令碼呼叫 getCurrent(),它將返回該側邊欄文件的視窗。

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

語法

js
let gettingCurrent = browser.windows.getCurrent(
  getInfo               // optional object
)

引數

getInfo 可選

object.

populate 可選

boolean。如果為 true,則 windows.Window 物件將具有一個 tabs 屬性,其中包含一個 tabs.Tab 物件陣列,表示視窗中的標籤頁。只有當擴充套件的 manifest 檔案包含 "tabs" 許可權或匹配標籤頁 URL 的 host 許可權時,Tab 物件才包含 urltitlefavIconUrl 屬性。

windowTypes 已棄用 可選

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

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

返回值

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

示例

當用戶點選瀏覽器操作的圖示時,此示例會獲取當前視窗並記錄其中包含的標籤頁的 URL。請注意,您需要 "tabs" 許可權或匹配的 host 許可權才能訪問標籤頁 URL。

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.getCurrent({ populate: true }).then(logTabs, onError);
});

擴充套件程式示例

瀏覽器相容性

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