windows.getLastFocused()

獲取最近獲得焦點的視窗 — 通常是“最頂層”的視窗。

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

語法

js
let gettingWindow = browser.windows.getLastFocused(
  getInfo               // optional object
)

引數

getInfo 可選

object.

populate 可選

boolean。如果為 true,則 windows.Window 物件將具有一個 tabs 屬性,其中包含表示視窗中選項卡的 tabs.Tab 物件列表。僅當擴充套件的 manifest 檔案包含 "tabs" 許可權或與選項卡 URL 匹配的 主機許可權時,Tab 物件才僅包含 urltitlefavIconUrl 屬性。

windowTypes 可選

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

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

返回值

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

示例

獲取最後一個獲得焦點的視窗,並記錄其中包含的選項卡。請注意,您需要 "tabs" 許可權或匹配的 主機許可權才能訪問選項卡 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.getLastFocused({ populate: true }).then(logTabs, onError);
});

瀏覽器相容性

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