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
- bevolken
boolean optioneel
Indien true, heeft het
windows.Window
-object eentabs
-eigenschap die een lijst met detabs.Tab
-objecten bevat. DeTab
objecten bevatten alleen de eigenschappenurl
,pendingUrl
,title
enfavIconUrl
als het manifestbestand van de extensie de machtiging"tabs"
bevat. - venstertypen
WindowType [] optioneel
Indien ingesteld, wordt het geretourneerde
windows.Window
gefilterd op basis van het type. Indien niet ingesteld, wordt het standaardfilter ingesteld op['normal', 'popup']
.
Window
Eigenschappen
- altijdOpTop
Booleaanse
Of het venster altijd bovenaan moet staan.
- gefocust
Booleaanse
Of het venster momenteel het focusvenster is.
- hoogte
nummer optioneel
De hoogte van het venster, inclusief het frame, in pixels. In sommige gevallen kan aan een venster geen
height
eigenschap worden toegewezen, bijvoorbeeld bij het opvragen van gesloten vensters via desessions
API. - id
nummer optioneel
De ID van het venster. Venster-ID's zijn uniek binnen een browsersessie. In sommige gevallen kan aan een venster geen
ID
eigenschap worden toegewezen, bijvoorbeeld bij het raadplegen van vensters via desessions
API. In dat geval kan er wel een sessie-ID aanwezig zijn. - incognito
Booleaanse
Of het venster incognito is.
- links
nummer optioneel
De offset van het venster ten opzichte van de linkerrand van het scherm in pixels. In sommige gevallen kan een venster geen
left
toegewezen krijgen, bijvoorbeeld bij het opvragen van gesloten vensters via desessions
API. - sessie-ID
string optioneel
De sessie-ID die wordt gebruikt om een venster eenduidig te identificeren, verkregen via de
sessions
API. - staat
WindowState optioneel
De status van dit browservenster.
- tabbladen
Tabblad [] optioneel
Matrix van
tabs.Tab
Tabbladobjecten die de huidige tabbladen in het venster voorstellen. - bovenkant
nummer optioneel
De offset van het venster ten opzichte van de bovenrand van het scherm in pixels. In sommige gevallen kan een venster geen
top
eigenschap toegewezen krijgen, bijvoorbeeld bij het opvragen van gesloten vensters via desessions
API. - type
WindowType optioneel
Het type browservenster dat dit is.
- breedte
nummer optioneel
De breedte van het venster, inclusief het frame, in pixels. In sommige gevallen kan aan een venster geen
width
eigenschap worden toegewezen, bijvoorbeeld bij het opvragen van gesloten vensters via desessions
API.
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
- createData
object optioneel
- gefocust
boolean optioneel
Indien
true
, wordt een actief venster geopend. Indienfalse
, wordt een inactief venster geopend. - hoogte
nummer optioneel
De hoogte in pixels van het nieuwe venster, inclusief het frame. Indien niet opgegeven, wordt standaard de natuurlijke hoogte gebruikt.
- incognito
boolean optioneel
Of het nieuwe venster een incognitovenster moet zijn.
- links
nummer 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.
- setSelfAsOpener
boolean 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. - staat
WindowState optioneel
Chroom 44+De begintoestand van het venster. De
minimized
,maximized
enfullscreen
toestanden kunnen niet worden gecombineerd metleft
,top
,width
height
. - tabbladId
nummer optioneel
De ID van het tabblad dat aan het nieuwe venster moet worden toegevoegd.
- bovenkant
nummer 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.
- type
CreateType optioneel
Hiermee geeft u aan welk type browservenster u wilt maken.
- url
string | 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.
- breedte
nummer 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-ID
nummer
- queryopties
QueryOptions optioneel
Chroom 88+
Retourneren
Promise <Venster>
Chroom 88+
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
): Promise<Window[]>
Krijgt alle vensters.
Parameters
- queryopties
QueryOptions optioneel
Chroom 88+
Retourneren
Belofte< Venster []>
Chroom 88+
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
): Promise<Window>
Haalt het huidige venster op.
Parameters
- queryopties
QueryOptions 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
- queryopties
QueryOptions 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-ID
nummer
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-ID
nummer
- updateInfo
voorwerp
- aandacht trekken
boolean 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 opfalse
om een eerderedrawAttention
aanvraag te annuleren. - gefocust
boolean 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'. - hoogte
nummer optioneel
De hoogte waarnaar het venster moet worden aangepast in pixels. Deze waarde wordt genegeerd voor panelen.
- links
nummer optioneel
De offset vanaf de linkerrand van het scherm waarnaar het venster moet worden verplaatst, in pixels. Deze waarde wordt genegeerd voor panelen.
- staat
WindowState optioneel
De nieuwe status van het venster. De statussen 'geminimaliseerd', 'gemaximaliseerd' en 'volledig scherm' kunnen niet worden gecombineerd met 'links', 'boven', 'breedte' of 'hoogte'.
- bovenkant
nummer optioneel
De offset vanaf de bovenrand van het scherm waarnaar het venster moet worden verplaatst, in pixels. Deze waarde wordt genegeerd voor panelen.
- breedte
nummer 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
- terugbellen
functie
De
callback
ziet 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
- terugbellen
functie
Chroom 46+De
callback
ziet er als volgt uit:(window: Window) => void
- raam
Details van het gemaakte venster.
- filters
object optioneel
- venstertypen
Venstertype []
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
- terugbellen
functie
Chroom 46+De
callback
ziet er als volgt uit:(windowId: number) => void
- venster-ID
nummer
ID van het nieuw geselecteerde venster.
- filters
object optioneel
- venstertypen
Venstertype []
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
- terugbellen
functie
Chroom 46+De
callback
ziet er als volgt uit:(windowId: number) => void
- venster-ID
nummer
ID van het verwijderde venster.
- filters
object optioneel
- venstertypen
Venstertype []
Voorwaarden waaraan het te verwijderen venstertype moet voldoen. Standaard voldoet het aan
['normal', 'popup']
.