windows.getCurrent()
獲取當前瀏覽器視窗,並將其詳細資訊傳遞給回撥函式。
“當前”視窗不一定等同於當前焦點所在的視窗。如果此函式是從後臺指令碼呼叫的,則它返回當前焦點所在的視窗。但如果它是由與特定瀏覽器視窗關聯的文件的指令碼呼叫的,則它返回該瀏覽器視窗。例如,如果瀏覽器正在顯示側邊欄,則每個瀏覽器視窗都有其自己的側邊欄文件例項。如果側邊欄文件中執行的指令碼呼叫 getCurrent(),它將返回該側邊欄文件的視窗。
這是一個非同步函式,返回一個 Promise。
語法
let gettingCurrent = browser.windows.getCurrent(
getInfo // optional object
)
引數
getInfo可選-
object.populate可選-
boolean。如果為 true,則windows.Window物件將具有一個tabs屬性,其中包含一個tabs.Tab物件陣列,表示視窗中的標籤頁。只有當擴充套件的 manifest 檔案包含"tabs"許可權或匹配標籤頁 URL 的 host 許可權時,Tab物件才包含url、title和favIconUrl屬性。 windowTypes已棄用 可選-
一個
windows.WindowType物件陣列。如果設定,則返回的windows.Window將根據其型別進行過濾。如果未設定,則預設過濾器設定為['normal', 'panel', 'popup'],其中'panel'視窗型別僅限於擴充套件自身的視窗。
注意:如果提供了 windowTypes,則 getInfo 的 windowTypes 元件將被忽略。自 Firefox 62 起,windowTypes 已被棄用。
返回值
一個 Promise,它將以一個 windows.Window 物件(包含視窗的詳細資訊)來兌現。如果發生任何錯誤,Promise 將以錯誤訊息拒絕。
示例
當用戶點選瀏覽器操作的圖示時,此示例會獲取當前視窗並記錄其中包含的標籤頁的 URL。請注意,您需要 "tabs" 許可權或匹配的 host 許可權才能訪問標籤頁 URL。
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。