chroom.ramen

Beschrijving

Gebruik de chrome.windows API om met browservensters te communiceren. Met deze API kunt u vensters in de browser maken, wijzigen en herschikken.

Toestemmingen

Wanneer daarom wordt gevraagd, bevat een windows.Window een array van tabs.Tab objecten. U moet de "tabs" -machtiging 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"],
  ...
}

Concepten en gebruik

Het huidige venster

Veel functies in het extensiesysteem accepteren een optioneel argument windowId , dat standaard het huidige venster is.

Het huidige venster is het venster dat de code bevat die momenteel wordt uitgevoerd. Het is belangrijk om te beseffen dat dit een ander venster kan zijn dan het bovenste of het geselecteerde venster.

Stel bijvoorbeeld dat een extensie een aantal tabbladen of vensters aanmaakt vanuit één HTML-bestand, en dat dit HTML-bestand een aanroep naar tabs.query() bevat. Het huidige venster is dan het venster dat de pagina bevat die de aanroep heeft gedaan, ongeacht welk venster zich bovenaan bevindt.

In het geval van serviceworkers wordt de waarde van het huidige venster teruggezet naar het laatst actieve venster. Onder bepaalde omstandigheden kan er voor achtergrondpagina's geen actief venster zijn.

Voorbeelden

Om deze API uit te proberen, installeer je het Windows API-voorbeeld uit de chrome-extension-samples repository.

Twee vensters, elk met één tabblad.
Twee vensters, elk met één tabblad.

Soorten

CreateType

Chrome 44+

Hiermee wordt bepaald welk type browservenster moet worden aangemaakt. 'panel' is verouderd en is alleen beschikbaar voor bestaande, toegestane extensies op Chrome OS.

Enum

"normaal"
Hiermee wordt het venster als een standaardvenster gespecificeerd.

"popup"
Hiermee wordt het venster als een pop-upvenster ingesteld.

"paneel"
Specificeert het venster als een paneel.

QueryOptions

Chrome 88+

Eigenschappen

  • bevolken

    boolean optioneel

    Indien waar, heeft het windows.Window -object een tabs eigenschap die een lijst van de tabs.Tab objecten bevat. De Tab objecten bevatten alleen de eigenschappen url , pendingUrl , title en favIconUrl als het manifestbestand van de extensie de "tabs" -toestemming 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

  • alwaysOnTop

    booleaans

    Of het venster zo is ingesteld dat het altijd bovenaan staat.

  • gericht

    booleaans

    Of het venster momenteel het geselecteerde venster is.

  • hoogte

    nummer optioneel

    De hoogte van het venster, inclusief de rand, in pixels. In sommige gevallen heeft een venster mogelijk geen height eigenschap; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

  • id

    nummer optioneel

    De ID van het venster. Venster-ID's zijn uniek binnen een browsersessie. In sommige gevallen heeft een venster mogelijk geen ID eigenschap; bijvoorbeeld bij het opvragen van vensters via de sessions API, in welk geval een sessie-ID aanwezig kan zijn.

  • incognito

    booleaans

    Of het venster nu incognito is.

  • links

    nummer optioneel

    De afstand van het venster tot de linkerrand van het scherm in pixels. In sommige gevallen heeft een venster mogelijk geen ' left eigenschap; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

  • sessie-ID

    string optioneel

    De sessie-ID die wordt gebruikt om een ​​venster uniek te identificeren, verkregen via de sessions API.

  • staat

    WindowState optioneel

    De status van dit browservenster.

  • tabbladen

    Tab [] optioneel

    Een array van tabs.Tab objecten die de huidige tabbladen in het venster vertegenwoordigen.

  • bovenkant

    nummer optioneel

    De afstand van het venster tot de bovenrand van het scherm in pixels. In sommige gevallen heeft een venster mogelijk geen ' top eigenschap; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

  • type

    WindowType optioneel

    Dit is het type browservenster.

  • breedte

    nummer optioneel

    De breedte van het venster, inclusief de rand, in pixels. In sommige gevallen heeft een venster mogelijk geen width eigenschap; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

WindowState

Chrome 44+

De status van dit browservenster. In sommige gevallen heeft een venster mogelijk geen state ; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

Enum

"normaal"
Normale vensterstatus (niet geminimaliseerd, gemaximaliseerd of volledig scherm).

"geminimaliseerd"
Venster geminimaliseerd.

"gemaximaliseerd"
Maximale vensterstatus.

"volledig scherm"
Volledig scherm in de venstermodus.

WindowType

Chrome 44+

Het type browservenster. In sommige gevallen wordt aan een venster geen type eigenschap toegekend; bijvoorbeeld bij het opvragen van gesloten vensters via de sessions API.

Enum

"normaal"
Een normaal browservenster.

"pop-up"
Een pop-upvenster in de browser.

"paneel"
Verouderd in deze API. Een paneelachtig venster van een Chrome-app. Extensies kunnen alleen hun eigen paneelvensters zien.

"app"
Verouderd in deze API. Een Chrome-appvenster. Extensies kunnen alleen hun eigen appvensters zien.

"ontwikkeltools"
Een venster met ontwikkelaarstools.

Eigenschappen

WINDOW_ID_CURRENT

De windowId-waarde die het huidige venster vertegenwoordigt.

Waarde

-2

WINDOW_ID_NONE

De windowId-waarde die aangeeft dat er geen Chrome-browservenster actief is.

Waarde

-1

Methoden

create()

chrome.windows.create(
  createData?: object,
)
: Promise<Window | undefined>

Hiermee wordt een nieuw browservenster geopend met de gewenste afmetingen, positie of standaard-URL.

Parameters

  • createData

    object optioneel

    • gericht

      boolean optioneel

      Als true , wordt een actief venster geopend. Als false , wordt een inactief venster geopend.

    • hoogte

      nummer optioneel

      De hoogte in pixels van het nieuwe venster, inclusief de rand. Indien niet gespecificeerd, wordt standaard een 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 geplaatst. Indien niet gespecificeerd, wordt het nieuwe venster op natuurlijke wijze verschoven ten opzichte van het laatst geselecteerde venster. Deze waarde wordt genegeerd voor panelen.

    • setSelfAsOpener

      boolean optioneel

      Chrome 64+

      Indien true , wordt de 'window.opener' van het nieuw gecreëerde venster ingesteld op de aanroeper en bevindt het zich in dezelfde eenheid van gerelateerde browsecontexten als de aanroeper.

    • staat

      WindowState optioneel

      Chrome 44+

      De beginstatus van het venster. De minimized , maximized en fullscreen schermstatus kunnen niet worden gecombineerd met left , top , width of height .

    • tabId

      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 gespecificeerd, wordt het nieuwe venster op natuurlijke wijze verschoven ten opzichte van het laatst geselecteerde venster. Deze waarde wordt genegeerd voor panelen.

    • type

      CreateType optioneel

      Hiermee wordt gespecificeerd welk type browservenster moet worden aangemaakt.

    • URL

      string | string[] optioneel

      Een URL of een reeks URL's die als tabbladen in het venster moeten 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 de rand. Indien niet gespecificeerd, wordt standaard een natuurlijke breedte gebruikt.

Retourneert

  • Promise< Window | undefined>

    Chrome 88+

get()

chrome.windows.get(
  windowId: number,
  queryOptions?: QueryOptions,
)
: Promise<Window>

Geeft details over een raam weer.

Parameters

  • venster-ID

    nummer

  • queryOptions

    QueryOptions optional

    Chrome 88+

Retourneert

getAll()

chrome.windows.getAll(
  queryOptions?: QueryOptions,
)
: Promise<Window[]>

Krijgt alle vensters.

Parameters

Retourneert

  • Promise< Window []>

    Chrome 88+

getCurrent()

chrome.windows.getCurrent(
  queryOptions?: QueryOptions,
)
: Promise<Window>

Geeft het huidige venster weer.

Parameters

Retourneert

getLastFocused()

chrome.windows.getLastFocused(
  queryOptions?: QueryOptions,
)
: Promise<Window>

Selecteert het venster dat het laatst was geselecteerd — meestal het venster 'bovenaan'.

Parameters

Retourneert

remove()

chrome.windows.remove(
  windowId: number,
)
: Promise<void>

Sluit een venster en alle tabbladen daarin.

Parameters

  • venster-ID

    nummer

Retourneert

  • Promise<void>

    Chrome 88+

update()

chrome.windows.update(
  windowId: number,
  updateInfo: object,
)
: Promise<Window>

Hiermee worden de eigenschappen van een venster bijgewerkt. Geef alleen de eigenschappen op die gewijzigd moeten worden; niet-opgegeven eigenschappen blijven ongewijzigd.

Parameters

  • venster-ID

    nummer

  • updateInfo

    voorwerp

    • trekAandacht

      boolean optioneel

      Indien true , zorgt dit ervoor dat het venster op een manier wordt weergegeven die de aandacht van de gebruiker trekt, zonder het venster waarop de focus staat te wijzigen. Dit effect duurt totdat de gebruiker de focus naar het venster verplaatst. Deze optie heeft geen effect als het venster al de focus heeft. Stel in op false om een ​​eerder drawAttention verzoek te annuleren.

    • gericht

      boolean optioneel

      Indien true , wordt het venster naar de voorgrond gebracht; kan niet worden gecombineerd met de status 'geminimaliseerd'. Indien false , wordt het volgende venster in de z-volgorde naar de voorgrond 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 afstand 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 afstand 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.

Retourneert

Evenementen

onBoundsChanged

Chrome 86+
chrome.windows.onBoundsChanged.addListener(
  callback: function,
)

Deze gebeurtenis wordt geactiveerd wanneer een venster van formaat verandert; deze gebeurtenis wordt alleen verzonden wanneer de nieuwe afmetingen zijn opgeslagen, en niet voor wijzigingen die nog gaande zijn.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (window: Window) => void

onCreated

chrome.windows.onCreated.addListener(
  callback: function,
  filters?: object,
)

Wordt geactiveerd wanneer een venster wordt aangemaakt.

Parameters

  • terugbelverzoek

    functie

    Chrome 46+

    De callback parameter ziet er als volgt uit:

    (window: Window) => void

    • raam

      Details van het aangemaakte venster.

  • filters

    object optioneel

    • venstertypen

      Voorwaarden waaraan het te creëren venstertype moet voldoen. Standaard voldoet het aan ['normal', 'popup'] .

onFocusChanged

chrome.windows.onFocusChanged.addListener(
  callback: function,
  filters?: object,
)

Wordt geactiveerd wanneer het momenteel actieve 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 verzonden voordat er van het ene Chrome-venster naar het andere wordt overgeschakeld.

Parameters

  • terugbelverzoek

    functie

    Chrome 46+

    De callback parameter ziet er als volgt uit:

    (windowId: number) => void

    • venster-ID

      nummer

      ID van het zojuist gefocuste venster.

  • filters

    object optioneel

    • venstertypen

      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 venster wordt verwijderd (gesloten).

Parameters

  • terugbelverzoek

    functie

    Chrome 46+

    De callback parameter ziet er als volgt uit:

    (windowId: number) => void

    • venster-ID

      nummer

      ID van het verwijderde venster.

  • filters

    object optioneel

    • venstertypen

      Voorwaarden waaraan het te verwijderen venstertype moet voldoen. Standaard voldoet het aan ['normal', 'popup'] .