Opis
Używaj interfejsu chrome.windows API do interakcji z oknami przeglądarki. Za pomocą tego interfejsu API możesz tworzyć, modyfikować i przenosić okna w przeglądarce.
Plik manifestu
Na żądanie obiekt windows.Window zawiera tablicę obiektów tabs.Tab. Jeśli potrzebujesz dostępu do właściwości url, pendingUrl, title lub favIconUrl obiektu tabs.Tab, musisz zadeklarować uprawnienie "tabs" w pliku manifestu. Na przykład:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
bieżące okno,
Wiele funkcji w systemie rozszerzeń przyjmuje opcjonalny argument windowId, który domyślnie odnosi się do bieżącego okna.
Bieżące okno to okno zawierające kod, który jest obecnie wykonywany. Warto pamiętać, że może to być inne okno niż okno na wierzchu lub okno, na którym skupia się uwaga użytkownika.
Załóżmy na przykład, że rozszerzenie tworzy kilka kart lub okien z jednego pliku HTML, a plik HTML zawiera wywołanie tabs.query(). Bieżące okno to okno zawierające stronę, która wykonała wywołanie, niezależnie od tego, które okno jest najwyższe.
W przypadku service workerów wartość bieżącego okna wraca do ostatniego aktywnego okna. W niektórych przypadkach nie ma bieżącego okna dla stron działających w tle.
Przykłady

Aby wypróbować ten interfejs API, zainstaluj przykład interfejsu API Windows z repozytorium chrome-extension-samples.
Typy
CreateType
Określa typ okna przeglądarki, które ma zostać utworzone. Typ „panel” jest wycofany i jest dostępny tylko w przypadku rozszerzeń umieszczonych na liście dozwolonych w systemie ChromeOS.
Typ wyliczeniowy
„normal” 
 Określa okno jako standardowe.
„popup” 
 Określa okno jako wyskakujące.
„panel” 
 Określa okno jako panel.
QueryOptions
Właściwości
- 
    wypełnić : uzupełnićwartość logiczna opcjonalna Jeśli wartość to „true”, obiekt windows.Windowma właściwośćtabs, która zawiera listę obiektówtabs.Tab. ObiektyTabzawierają właściwościurl,pendingUrl,titleifavIconUrltylko wtedy, gdy plik manifestu rozszerzenia zawiera uprawnienie"tabs".
- 
    windowTypesWindowType[] opcjonalny Jeśli ten parametr jest ustawiony, zwracana wartość windows.Windowjest filtrowana na podstawie jej typu. Jeśli nie jest ustawiony, domyślny filtr ma wartość['normal', 'popup'].
Window
Właściwości
- 
    alwaysOnTopWartość logiczna Określa, czy okno ma być zawsze na wierzchu. 
- 
    skupiony,Wartość logiczna Określa, czy okno jest obecnie zaznaczone. 
- 
    wysokośćnumber opcjonalny Wysokość okna, łącznie z ramką, w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości height, np. podczas wysyłania zapytań o zamknięte okna z interfejsusessionsAPI.
- 
    idnumber opcjonalny Identyfikator okna. Identyfikatory okien są unikalne w ramach sesji przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości ID, np. podczas wysyłania zapytań dotyczących okien za pomocą interfejsusessionsAPI. W takim przypadku może być obecny identyfikator sesji.
- 
    incognitoWartość logiczna Czy okno jest oknem incognito. 
- 
    w lewonumber opcjonalny Odsunięcie okna od lewej krawędzi ekranu w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości left, np. podczas wysyłania zapytań o zamknięte okna z interfejsusessionsAPI.
- 
    sessionIdstring opcjonalny Identyfikator sesji używany do jednoznacznej identyfikacji okna, uzyskany z interfejsu sessionsAPI.
- 
    stanWindowState opcjonalny Stan tego okna przeglądarki. 
- 
    karty,Tab[] opcjonalny Tablica obiektów tabs.Tabreprezentujących bieżące karty w oknie.
- 
    góranumber opcjonalny Odsunięcie okna od górnej krawędzi ekranu w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości top, np. podczas wysyłania zapytań o zamknięte okna z interfejsusessionsAPI.
- 
    typWindowType opcjonalny Typ okna przeglądarki. 
- 
    szerokośćnumber opcjonalny Szerokość okna (wraz z ramką) w pikselach. W niektórych przypadkach okno może nie mieć przypisanej właściwości width, np. podczas wysyłania zapytań o zamknięte okna z interfejsusessionsAPI.
WindowState
Stan tego okna przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości state, np. podczas wysyłania zapytań o zamknięte okna z interfejsu sessions API.
Typ wyliczeniowy
„normal” 
 Normalny stan okna (niezminimalizowany, niezmaksymalizowany ani niepełnoekranowy).
„zminimalizowane” 
 Stan zminimalizowanego okna.
"maximized" 
 Zmaksymalizowany stan okna.
"fullscreen" 
 Stan okna w trybie pełnoekranowym.
„locked-fullscreen” 
 Stan okna w trybie pełnoekranowym zablokowanym. Użytkownik nie może wyjść z tego trybu pełnoekranowego. Jest on dostępny tylko dla rozszerzeń umieszczonych na liście dozwolonych w ChromeOS.
WindowType
Rodzaj okna przeglądarki. W niektórych przypadkach okno może nie mieć przypisanej właściwości type, np. podczas wysyłania zapytań o zamknięte okna z interfejsu sessions API.
Typ wyliczeniowy
„normal” 
 Zwykłe okno przeglądarki.
„popup” 
 Wyskakujące okienko przeglądarki.
„panel” 
 Wycofany w tym interfejsie API. Okno w stylu panelu aplikacji Chrome. Rozszerzenia widzą tylko własne okna panelu.
„app” 
 Wycofane w tym interfejsie API. okno aplikacji Chrome, Rozszerzenia mogą wyświetlać tylko własne okna aplikacji.
„devtools” 
 Okno Narzędzi dla programistów.
Właściwości
WINDOW_ID_CURRENT
Wartość windowId, która reprezentuje bieżące okno.
Wartość
-2 
 
WINDOW_ID_NONE
Wartość windowId, która oznacza brak okna przeglądarki Chrome.
Wartość
-1 
 
Metody
create()
chrome.windows.create(
createData?: object,
callback?: function,
): Promise<Window | undefined>
Tworzy (otwiera) nowe okno przeglądarki z opcjonalnym rozmiarem, położeniem lub domyślnym adresem URL.
Parametry
- 
    createDataobiekt opcjonalny - 
    skupiony,wartość logiczna opcjonalna Jeśli true, otwiera aktywne okno. Jeślifalse, otwiera nieaktywne okno.
- 
    wysokośćnumber opcjonalny Wysokość nowego okna w pikselach, łącznie z ramką. Jeśli nie podasz tu żadnej wartości, zostanie użyta naturalna wysokość. 
- 
    incognitowartość logiczna opcjonalna Określa, czy nowe okno ma być oknem incognito. 
- 
    w lewonumber opcjonalny Liczba pikseli, o którą nowe okno ma być odsunięte od lewej krawędzi ekranu. Jeśli nie określisz tego parametru, nowe okno zostanie przesunięte w naturalny sposób względem ostatniego okna, na którym skupiono uwagę. Ta wartość jest ignorowana w przypadku paneli. 
- 
    setSelfAsOpenerwartość logiczna opcjonalna Chrome 64 lub nowszaJeśli true, właściwość „window.opener” nowo utworzonego okna jest ustawiona na wywołującego i znajduje się w tej samej jednostce powiązanych kontekstów przeglądania co wywołujący.
- 
    stanWindowState opcjonalny Chrome 44 lub nowszyStan początkowy okna. Stanów minimized,maximizedifullscreennie można łączyć ze stanamileft,top,widthaniheight.
- 
    tabIdnumber opcjonalny Identyfikator karty, która ma zostać dodana do nowego okna. 
- 
    góranumber opcjonalny Liczba pikseli, o którą nowe okno ma być odsunięte od górnej krawędzi ekranu. Jeśli nie określisz tego parametru, nowe okno zostanie przesunięte w naturalny sposób względem ostatniego okna, na którym skupiono uwagę. Ta wartość jest ignorowana w przypadku paneli. 
- 
    typCreateType opcjonalny Określa typ okna przeglądarki, które ma zostać utworzone. 
- 
    URLstring | string[] opcjonalny Adres URL lub tablica adresów URL do otwarcia jako karty w oknie. Pełne adresy URL muszą zawierać schemat, np. „http://www.google.com”, a nie „www.google.com”. Niepełne adresy URL są traktowane jako względne w ramach rozszerzenia. Domyślnie jest to strona Nowa karta. 
- 
    szerokośćnumber opcjonalny Szerokość nowego okna w pikselach, łącznie z ramką. Jeśli nie podasz tu żadnej wartości, zostanie użyta naturalna szerokość. 
 
- 
    
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(window?: Window) => void - 
    oknoWindow opcjonalny Zawiera szczegóły utworzonego okna. 
 
- 
    
Zwroty
- 
            Promise<Window | undefined> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Pobiera szczegóły okna.
Parametry
- 
    windowIdliczba 
- 
    queryOptionsQueryOptions opcjonalny Chrome 88 lub nowsza
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(window: Window) => void - 
    okno
 
- 
    
Zwroty
- 
            Promise<Window> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window[]>
Pobiera wszystkie okna.
Parametry
- 
    queryOptionsQueryOptions opcjonalny Chrome 88 lub nowsza
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(windows: Window[]) => void - 
    oknaWindow[] 
 
- 
    
Zwroty
- 
            Promise<Window[]> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Pobiera bieżące okno.
Parametry
- 
    queryOptionsQueryOptions opcjonalny Chrome 88 lub nowsza
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(window: Window) => void - 
    okno
 
- 
    
Zwroty
- 
            Promise<Window> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Pobiera okno, które było ostatnio aktywne – zwykle jest to okno „na wierzchu”.
Parametry
- 
    queryOptionsQueryOptions opcjonalny Chrome 88 lub nowsza
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(window: Window) => void - 
    okno
 
- 
    
Zwroty
- 
            Promise<Window> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
remove()
chrome.windows.remove(
windowId: number,
callback?: function,
): Promise<void>
Usuwa (zamyka) okno i wszystkie karty w nim otwarte.
Parametry
- 
    windowIdliczba 
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
callback?: function,
): Promise<Window>
Aktualizuje właściwości okna. Określ tylko właściwości, które mają zostać zmienione. Właściwości nieokreślone pozostaną bez zmian.
Parametry
- 
    windowIdliczba 
- 
    updateInfoobiekt - 
    drawAttentionwartość logiczna opcjonalna Jeśli true, powoduje wyświetlenie okna w sposób, który przyciąga uwagę użytkownika, bez zmiany okna, na którym jest skupiona uwaga. Efekt będzie trwał, dopóki użytkownik nie przełączy się na okno. Ta opcja nie ma wpływu, jeśli okno jest już aktywne. Ustaw jakofalse, aby anulować poprzednią prośbędrawAttention.
- 
    skupiony,wartość logiczna opcjonalna Jeśli true, okno zostanie przeniesione na pierwszy plan. Nie można łączyć z stanem „zminimalizowane”. Jeślifalse, przenosi następne okno w kolejności z do przodu; nie można łączyć ze stanem „pełny ekran” ani „zmaksymalizowany”.
- 
    wysokośćnumber opcjonalny Wysokość, do której ma zostać zmieniony rozmiar okna (w pikselach). Ta wartość jest ignorowana w przypadku paneli. 
- 
    w lewonumber opcjonalny Odsunięcie od lewej krawędzi ekranu, o które należy przesunąć okno (w pikselach). Ta wartość jest ignorowana w przypadku paneli. 
- 
    stanWindowState opcjonalny Nowy stan okna. Stanów „zminimalizowany”, „zmaksymalizowany” i „pełny ekran” nie można łączyć ze stanami „lewy”, „górny”, „szerokość” ani „wysokość”. 
- 
    góranumber opcjonalny Odsunięcie od górnej krawędzi ekranu, o które okno ma zostać przesunięte (w pikselach). Ta wartość jest ignorowana w przypadku paneli. 
- 
    szerokośćnumber opcjonalny Szerokość, do której ma zostać zmieniony rozmiar okna (w pikselach). Ta wartość jest ignorowana w przypadku paneli. 
 
- 
    
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:(window: Window) => void - 
    okno
 
- 
    
Zwroty
- 
            Promise<Window> Chrome 88 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
Wydarzenia
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Wywoływane, gdy rozmiar okna został zmieniony. To zdarzenie jest wysyłane tylko wtedy, gdy nowe granice zostaną zatwierdzone, a nie w przypadku zmian w toku.
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Uruchamiane, gdy tworzone jest okno.
Parametry
- 
    callbackfunkcja Chrome 46 lub nowszaParametr callbackwygląda tak:(window: Window) => void - 
    oknoSzczegóły utworzonego okna. 
 
- 
    
- 
    filtryobiekt opcjonalny - 
    windowTypesWarunki, które musi spełniać tworzony typ okna. Domyślnie spełnia warunek ['normal', 'popup'].
 
- 
    
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Wysyłane, gdy zmieni się aktualnie aktywne okno. Zwraca wartość chrome.windows.WINDOW_ID_NONE, jeśli wszystkie okna Chrome utraciły fokus. Uwaga: w przypadku niektórych menedżerów okien w systemie Linux znak WINDOW_ID_NONE jest zawsze wysyłany bezpośrednio przed przełączeniem się z jednego okna Chrome na inne.
Parametry
- 
    callbackfunkcja Chrome 46 lub nowszaParametr callbackwygląda tak:(windowId: number) => void - 
    windowIdliczba Identyfikator nowo aktywowanego okna. 
 
- 
    
- 
    filtryobiekt opcjonalny - 
    windowTypesWarunki, które musi spełniać typ okna, aby można było go usunąć. Domyślnie spełnia warunek ['normal', 'popup'].
 
- 
    
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Uruchamiane po usunięciu (zamknięciu) okna.
Parametry
- 
    callbackfunkcja Chrome 46 lub nowszaParametr callbackwygląda tak:(windowId: number) => void - 
    windowIdliczba Identyfikator usuniętego okna. 
 
- 
    
- 
    filtryobiekt opcjonalny - 
    windowTypesWarunki, które musi spełniać typ okna, aby można było go usunąć. Domyślnie spełnia warunek ['normal', 'popup'].
 
-