Beschrijving
 Gebruik de chrome.windows API om te communiceren met browservensters. U kunt deze API gebruiken om vensters in de browser te maken, te wijzigen en opnieuw in te delen.
Machtigingen
 Indien gevraagd, bevat een windows.Window een array met tabs.Tab objecten. U moet de machtiging "tabs" in uw manifest declareren als u toegang nodig hebt tot de eigenschappen url , pendingUrl , title of favIconUrl van tabs.Tab . Bijvoorbeeld:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
Begrippen en gebruik
Het huidige venster
 Veel functies in het extensiesysteem accepteren een optioneel windowId argument, dat standaard het huidige venster gebruikt.
Het huidige venster is het venster met de code die momenteel wordt uitgevoerd. Het is belangrijk om te beseffen dat dit kan verschillen van het bovenste of gefocuste venster.
 Stel bijvoorbeeld dat een extensie een paar tabbladen of vensters aanmaakt vanuit één HTML-bestand, en dat het HTML-bestand een aanroep van tabs.query() bevat. Het huidige venster is het venster dat de pagina bevat die de aanroep heeft gedaan, ongeacht wat het bovenste venster is.
In het geval van serviceworkers valt de waarde van het huidige venster terug naar het laatst actieve venster. Onder bepaalde omstandigheden is er mogelijk geen huidig venster voor achtergrondpagina's.
Voorbeelden
Om deze API uit te proberen, installeert u het Windows API-voorbeeld uit de chrome-extension-samples repository.
Typen
CreateType
Geeft aan welk type browservenster moet worden gemaakt. 'panel' is verouderd en is alleen beschikbaar voor bestaande extensies op de toegestane lijst in Chrome OS.
Enum
 "normaal"  "pop-up"  "paneel"
 Geeft aan dat het venster een standaardvenster is. 
 Hiermee wordt het venster opgegeven als pop-upvenster. 
 Geeft aan dat het venster een paneel is.
QueryOptions
Eigenschappen
- bevolkenboolean optioneel Indien true, heeft het windows.Window-object eentabs-eigenschap die een lijst met detabs.Tab-objecten bevat. DeTabobjecten bevatten alleen de eigenschappenurl,pendingUrl,titleenfavIconUrlals het manifestbestand van de extensie de machtiging"tabs"bevat.
- venstertypenWindowType [] optioneel Indien ingesteld, wordt het geretourneerde windows.Windowgefilterd op basis van het type. Indien niet ingesteld, wordt het standaardfilter ingesteld op['normal', 'popup'].
Window
Eigenschappen
- altijdOpTopBooleaanse Of het venster altijd bovenaan moet staan. 
- gefocustBooleaanse Of het venster momenteel het focusvenster is. 
- hoogtenummer optioneel De hoogte van het venster, inclusief het frame, in pixels. In sommige gevallen kan aan een venster geen heighteigenschap worden toegewezen, bijvoorbeeld bij het opvragen van gesloten vensters via desessionsAPI.
- idnummer optioneel De ID van het venster. Venster-ID's zijn uniek binnen een browsersessie. In sommige gevallen kan aan een venster geen IDeigenschap worden toegewezen, bijvoorbeeld bij het raadplegen van vensters via desessionsAPI. In dat geval kan er wel een sessie-ID aanwezig zijn.
- incognitoBooleaanse Of het venster incognito is. 
- linksnummer optioneel De offset van het venster ten opzichte van de linkerrand van het scherm in pixels. In sommige gevallen kan een venster geen lefttoegewezen krijgen, bijvoorbeeld bij het opvragen van gesloten vensters via desessionsAPI.
- sessie-IDstring optioneel De sessie-ID die wordt gebruikt om een venster eenduidig te identificeren, verkregen via de sessionsAPI.
- staatWindowState optioneel De status van dit browservenster. 
- tabbladenTabblad [] optioneel Matrix van tabs.TabTabbladobjecten die de huidige tabbladen in het venster voorstellen.
- bovenkantnummer optioneel De offset van het venster ten opzichte van de bovenrand van het scherm in pixels. In sommige gevallen kan een venster geen topeigenschap toegewezen krijgen, bijvoorbeeld bij het opvragen van gesloten vensters via desessionsAPI.
- typeWindowType optioneel Het type browservenster dat dit is. 
- breedtenummer optioneel De breedte van het venster, inclusief het frame, in pixels. In sommige gevallen kan aan een venster geen widtheigenschap worden toegewezen, bijvoorbeeld bij het opvragen van gesloten vensters via desessionsAPI.
WindowState
 De status van dit browservenster. In sommige gevallen wordt aan een venster mogelijk geen state toegewezen, bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API. 
Enum
 "normaal"  "geminimaliseerd"  "gemaximaliseerd"  "volledig scherm"  "vergrendeld-volledig scherm"
 Normale vensterstatus (niet geminimaliseerd, gemaximaliseerd of volledig scherm). 
 Geminimaliseerde vensterstatus. 
 Gemaximaliseerde vensterstatus. 
 Status van volledig schermvenster. 
 Vergrendelde status van volledig scherm. Deze status kan niet door de gebruiker worden verlaten en is alleen beschikbaar voor extensies op de toelatingslijst in Chrome OS.
WindowType
 Het type browservenster dat dit betreft. In sommige gevallen kan een venster geen type eigenschap toegewezen krijgen, bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API. 
Enum
 "normaal"  "pop-up"  "paneel"  "toepassing"  "ontwikkelaars"
 Een normaal browservenster. 
 Een browser-popup. 
 Verouderd in deze API. Een venster in de stijl van een Chrome-apppaneel. Extensies kunnen alleen hun eigen paneelvensters zien. 
 Verouderd in deze API. Een Chrome-appvenster. Extensies kunnen alleen hun eigen app-vensters zien. 
 Een venster met ontwikkelaarshulpmiddelen.
Eigenschappen
WINDOW_ID_CURRENT
De windowId-waarde die het huidige venster vertegenwoordigt.
Waarde
 -2 
WINDOW_ID_NONE
De windowId-waarde die de afwezigheid van een Chrome-browservenster vertegenwoordigt.
Waarde
 -1 
Methoden
create()
chrome.windows.create(
createData?: object,
): Promise<Window | undefined>
Maakt (opent) een nieuw browservenster met de optionele afmetingen, positie of standaard-URL die u hebt opgegeven.
Parameters
- createDataobject optioneel - gefocustboolean optioneel Indien true, wordt een actief venster geopend. Indienfalse, wordt een inactief venster geopend.
- hoogtenummer optioneel De hoogte in pixels van het nieuwe venster, inclusief het frame. Indien niet opgegeven, wordt standaard de natuurlijke hoogte gebruikt. 
- incognitoboolean optioneel Of het nieuwe venster een incognitovenster moet zijn. 
- linksnummer optioneel Het aantal pixels waarmee het nieuwe venster vanaf de linkerrand van het scherm wordt gepositioneerd. Indien niet opgegeven, wordt het nieuwe venster op natuurlijke wijze verschoven ten opzichte van het laatst gefocuste venster. Deze waarde wordt genegeerd voor panelen. 
- setSelfAsOpenerboolean optioneel Chroom 64+Als deze optie true, wordt de 'window.opener' van het nieuw aangemaakte venster ingesteld op de aanroeper en bevindt deze zich in dezelfde eenheid van gerelateerde browsercontexten als de aanroeper.
- staatWindowState optioneel Chroom 44+De begintoestand van het venster. De minimized,maximizedenfullscreentoestanden kunnen niet worden gecombineerd metleft,top,widthheight.
- tabbladIdnummer optioneel De ID van het tabblad dat aan het nieuwe venster moet worden toegevoegd. 
- bovenkantnummer optioneel Het aantal pixels waarmee het nieuwe venster vanaf de bovenrand van het scherm wordt gepositioneerd. Indien niet opgegeven, wordt het nieuwe venster op natuurlijke wijze verschoven ten opzichte van het laatst gefocuste venster. Deze waarde wordt genegeerd voor panelen. 
- typeCreateType optioneel Hiermee geeft u aan welk type browservenster u wilt maken. 
- urlstring | string[] optioneel Een URL of een reeks URL's die als tabbladen in het venster worden geopend. Volledig gekwalificeerde URL's moeten een schema bevatten, bijvoorbeeld 'http://www.google.com', niet 'www.google.com'. Niet-volledig gekwalificeerde URL's worden binnen de extensie als relatief beschouwd. Standaard wordt de pagina 'Nieuw tabblad' gebruikt. 
- breedtenummer optioneel De breedte in pixels van het nieuwe venster, inclusief het frame. Indien niet opgegeven, wordt standaard de natuurlijke breedte gebruikt. 
 
Retourneren
- Promise< Venster | undefined> Chroom 88+
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
): Promise<Window>
Geeft details over een venster.
Parameters
- venster-IDnummer 
- queryoptiesQueryOptions optioneel Chroom 88+
Retourneren
- Promise <Venster> Chroom 88+
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Krijgt alle vensters.
Parameters
- queryoptiesQueryOptions optioneel Chroom 88+
Retourneren
- Belofte< Venster []> Chroom 88+
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Haalt het huidige venster op.
Parameters
- queryoptiesQueryOptions optioneel Chroom 88+
Retourneren
- Promise <Venster> Chroom 88+
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
): Promise<Window>
Hiermee krijgt u het venster dat als laatste de focus had, meestal het venster 'bovenaan'.
Parameters
- queryoptiesQueryOptions optioneel Chroom 88+
Retourneren
- Promise <Venster> Chroom 88+
remove()
chrome.windows.remove(
windowId: number,
): Promise<void>
Verwijdert (sluit) een venster en alle tabbladen daarin.
Parameters
- venster-IDnummer 
Retourneren
- Belofte<leegte> Chroom 88+
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
): Promise<Window>
Werkt de eigenschappen van een venster bij. Geef alleen de eigenschappen op die gewijzigd moeten worden; niet-gespecificeerde eigenschappen blijven ongewijzigd.
Parameters
- venster-IDnummer 
- updateInfovoorwerp - aandacht trekkenboolean optioneel Indien true, wordt het venster weergegeven op een manier die de aandacht van de gebruiker vestigt op het venster, zonder het gefocuste venster te wijzigen. Het effect blijft actief totdat de gebruiker de focus naar het venster verplaatst. Deze optie heeft geen effect als het venster al focus heeft. Stel in opfalseom een eerderedrawAttentionaanvraag te annuleren.
- gefocustboolean optioneel Indien true, wordt het venster naar voren gebracht; kan niet worden gecombineerd met de status 'geminimaliseerd'. Indienfalse, wordt het volgende venster in de z-volgorde naar voren gebracht; kan niet worden gecombineerd met de status 'volledig scherm' of 'gemaximaliseerd'.
- hoogtenummer optioneel De hoogte waarnaar het venster moet worden aangepast in pixels. Deze waarde wordt genegeerd voor panelen. 
- linksnummer optioneel De offset vanaf de linkerrand van het scherm waarnaar het venster moet worden verplaatst, in pixels. Deze waarde wordt genegeerd voor panelen. 
- staatWindowState optioneel De nieuwe status van het venster. De statussen 'geminimaliseerd', 'gemaximaliseerd' en 'volledig scherm' kunnen niet worden gecombineerd met 'links', 'boven', 'breedte' of 'hoogte'. 
- bovenkantnummer optioneel De offset vanaf de bovenrand van het scherm waarnaar het venster moet worden verplaatst, in pixels. Deze waarde wordt genegeerd voor panelen. 
- breedtenummer optioneel De breedte waarnaar het venster moet worden aangepast in pixels. Deze waarde wordt genegeerd voor panelen. 
 
Retourneren
- Promise <Venster> Chroom 88+
Evenementen
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Wordt geactiveerd wanneer de grootte van een venster wordt gewijzigd. Deze gebeurtenis wordt alleen verzonden wanneer de nieuwe grenzen zijn vastgelegd, en niet bij wijzigingen die nog in uitvoering zijn.
Parameters
- terugbellenfunctie De callbackziet er als volgt uit:(window: Window) => void - raam
 
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Wordt geactiveerd wanneer een venster wordt aangemaakt.
Parameters
- terugbellenfunctie Chroom 46+De callbackziet er als volgt uit:(window: Window) => void - raamDetails van het gemaakte venster. 
 
- filtersobject optioneel - venstertypenVenstertype [] Voorwaarden waaraan het venstertype dat wordt aangemaakt, moet voldoen. Standaard voldoet het aan ['normal', 'popup'].
 
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
 Wordt geactiveerd wanneer het momenteel gefocuste venster verandert. Retourneert chrome.windows.WINDOW_ID_NONE als alle Chrome-vensters de focus hebben verloren. Opmerking: bij sommige Linux-vensterbeheerders wordt WINDOW_ID_NONE altijd direct vóór een wisseling van het ene Chrome-venster naar het andere verzonden. 
Parameters
- terugbellenfunctie Chroom 46+De callbackziet er als volgt uit:(windowId: number) => void - venster-IDnummer ID van het nieuw geselecteerde venster. 
 
- filtersobject optioneel - venstertypenVenstertype [] Voorwaarden waaraan het te verwijderen venstertype moet voldoen. Standaard voldoet het aan ['normal', 'popup'].
 
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Wordt geactiveerd wanneer een raam wordt verwijderd (gesloten).
Parameters
- terugbellenfunctie Chroom 46+De callbackziet er als volgt uit:(windowId: number) => void - venster-IDnummer ID van het verwijderde venster. 
 
- filtersobject optioneel - venstertypenVenstertype [] Voorwaarden waaraan het te verwijderen venstertype moet voldoen. Standaard voldoet het aan ['normal', 'popup'].