Beschreibung
Verwenden Sie die chrome.windows API, um mit Browserfenstern zu interagieren. Mit dieser API können Sie Fenster im Browser erstellen, ändern und neu anordnen.
Manifest
Bei Bedarf enthält ein windows.Window ein Array von tabs.Tab-Objekten. Sie müssen die Berechtigung "tabs" in Ihrem Manifest deklarieren, wenn Sie Zugriff auf die Attribute url, pendingUrl, title oder favIconUrl von tabs.Tab benötigen. Beispiel:
{
  "name": "My extension",
  ...
  "permissions": ["tabs"],
  ...
}
Das aktuelle Fenster
Viele Funktionen im Erweiterungssystem akzeptieren das optionale Argument windowId, das standardmäßig auf das aktuelle Fenster festgelegt ist.
Das aktuelle Fenster ist das Fenster, das den Code enthält, der gerade ausgeführt wird. Das kann sich vom obersten oder fokussierten Fenster unterscheiden.
Angenommen, eine Erweiterung erstellt einige Tabs oder Fenster aus einer einzelnen HTML-Datei und diese HTML-Datei enthält einen Aufruf von tabs.query(). Das aktuelle Fenster ist das Fenster, das die Seite enthält, von der der Aufruf stammt, unabhängig davon, welches Fenster das oberste ist.
Bei Service Workern wird der Wert des aktuellen Fensters auf das letzte aktive Fenster zurückgesetzt. Unter Umständen gibt es kein aktuelles Fenster für Hintergrundseiten.
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das Windows API-Beispiel aus dem Repository chrome-extension-samples.
Typen
CreateType
Gibt an, welcher Browsertyp erstellt werden soll. „panel“ ist veraltet und nur für vorhandene Erweiterungen auf der Zulassungsliste unter ChromeOS verfügbar.
Enum
„normal“ 
 Gibt das Fenster als Standardfenster an.
„popup“ 
 Gibt das Fenster als Pop-up-Fenster an.
„panel“ 
 Gibt das Fenster als Bereich an.
QueryOptions
Attribute
- 
    populateboolean optional Wenn „true“, hat das windows.Window-Objekt das Attributtabs, das eine Liste dertabs.Tab-Objekte enthält. DieTab-Objekte enthalten nur die Attributeurl,pendingUrl,titleundfavIconUrl, wenn die Manifestdatei der Erweiterung die Berechtigung"tabs"enthält.
- 
    windowTypesWindowType[] optional Wenn diese Option festgelegt ist, wird das zurückgegebene windows.Windownach seinem Typ gefiltert. Wenn nicht festgelegt, wird der Standardfilter auf['normal', 'popup']gesetzt.
Window
Attribute
- 
    alwaysOnTopboolean Gibt an, ob das Fenster immer im Vordergrund angezeigt wird. 
- 
    Fokussiertboolean Gibt an, ob das Fenster derzeit das aktive Fenster ist. 
- 
    Höhenumber optional Die Höhe des Fensters in Pixeln, einschließlich des Rahmens. Unter Umständen wird einem Fenster keine height-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über diesessionsAPI abgefragt werden.
- 
    idnumber optional Die ID des Fensters. Fenster-IDs sind innerhalb einer Browsersitzung eindeutig. Unter Umständen wird einem Fenster kein ID-Attribut zugewiesen, z. B. wenn Sie Fenster mit dersessionsAPI abfragen. In diesem Fall ist möglicherweise eine Sitzungs-ID vorhanden.
- 
    Inkognitoboolean Gibt an, ob das Fenster im Inkognitomodus geöffnet ist. 
- 
    linksnumber optional Der Abstand des Fensters vom linken Bildschirmrand in Pixeln. Unter Umständen wird einem Fenster keine left-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über diesessionsAPI abgefragt werden.
- 
    sessionIdString optional Die Sitzungs-ID, die zur eindeutigen Identifizierung eines Fensters verwendet wird und über die sessionsAPI abgerufen wird.
- 
    BundesstaatWindowState optional Der Status dieses Browserfensters. 
- 
    TabsTab[] optional Array von tabs.Tab-Objekten, die die aktuellen Tabs im Fenster darstellen.
- 
    obennumber optional Der Abstand des Fensters vom oberen Bildschirmrand in Pixeln. Unter Umständen wird einem Fenster keine top-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über diesessionsAPI abgefragt werden.
- 
    TypWindowType optional Die Art des Browserfensters. 
- 
    Breitenumber optional Die Breite des Fensters in Pixeln, einschließlich des Rahmens. Unter Umständen wird einem Fenster keine width-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über diesessionsAPI abgefragt werden.
WindowState
Der Status dieses Browserfensters. Unter Umständen wird einem Fenster keine state-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über die sessions API abgefragt werden.
Enum
„normal“ 
 Normaler Fensterstatus (nicht minimiert, maximiert oder im Vollbildmodus).
„minimiert“ 
 Minimierter Fensterstatus.
„maximized“ 
 Maximierter Fensterstatus.
"fullscreen" 
 Vollbildfensterstatus.
„locked-fullscreen“ 
 Status des gesperrten Vollbildfensters. Dieser Vollbildmodus kann nicht durch Nutzeraktionen beendet werden und ist nur für Erweiterungen auf der Zulassungsliste unter Chrome OS verfügbar.
WindowType
Der Typ des Browserfensters. Unter Umständen wird einem Fenster keine type-Eigenschaft zugewiesen, z. B. wenn geschlossene Fenster über die sessions API abgefragt werden.
Enum
„normal“ 
 Ein normales Browserfenster.
„popup“ 
 Ein Browser-Pop-up.
„panel“ 
 In dieser API eingestellt. Ein Fenster im Stil eines Chrome-App-Panels. Erweiterungen können nur ihre eigenen Fenster sehen.
„app“ 
 In dieser API eingestellt. Ein Chrome-App-Fenster. Erweiterungen können nur die Fenster ihrer eigenen App sehen.
"devtools" 
 Ein Entwicklertools-Fenster.
Attribute
WINDOW_ID_CURRENT
Der windowId-Wert, der das aktuelle Fenster darstellt.
Wert
–2 
 
WINDOW_ID_NONE
Der windowId-Wert, der das Fehlen eines Chrome-Browserfensters darstellt.
Wert
-1 
 
Methoden
create()
chrome.windows.create(
createData?: object,
callback?: function,
): Promise<Window | undefined>
Erstellt (öffnet) ein neues Browserfenster mit optionalen Größen-, Positions- oder Standard-URLs.
Parameter
- 
    createDataobject optional - 
    Fokussiertboolean optional Wenn true, wird ein aktives Fenster geöffnet. Wennfalse, wird ein inaktives Fenster geöffnet.
- 
    Höhenumber optional Die Höhe des neuen Fensters in Pixeln, einschließlich des Rahmens. Wenn nichts angegeben ist, wird standardmäßig eine natürliche Höhe verwendet. 
- 
    Inkognitoboolean optional Gibt an, ob das neue Fenster ein Inkognitofenster sein soll. 
- 
    linksnumber optional Die Anzahl der Pixel, um das neue Fenster vom linken Bildschirmrand zu positionieren. Wenn nicht angegeben, wird das neue Fenster auf natürliche Weise vom zuletzt fokussierten Fenster versetzt. Dieser Wert wird für Bereiche ignoriert. 
- 
    setSelfAsOpenerboolean optional Chrome 64 und höherWenn true, wird „window.opener“ des neu erstellten Fensters auf den Aufrufer festgelegt und befindet sich in derselben Einheit verwandter Browserkontexte wie der Aufrufer.
- 
    BundesstaatWindowState optional Chrome 44 und höherDer ursprüngliche Status des Fensters. Die Status minimized,maximizedundfullscreenkönnen nicht mitleft,top,widthoderheightkombiniert werden.
- 
    tabIdnumber optional Die ID des Tabs, der dem neuen Fenster hinzugefügt werden soll. 
- 
    obennumber optional Die Anzahl der Pixel, um das neue Fenster vom oberen Bildschirmrand zu positionieren. Wenn nicht angegeben, wird das neue Fenster auf natürliche Weise vom zuletzt fokussierten Fenster versetzt. Dieser Wert wird für Bereiche ignoriert. 
- 
    TypCreateType optional Gibt an, welcher Browsertyp erstellt werden soll. 
- 
    URLString | String[] optional Eine URL oder ein Array von URLs, die als Tabs im Fenster geöffnet werden sollen. Vollständig qualifizierte URLs müssen ein Schema enthalten, z.B. „http://www.google.com“ und nicht „www.google.com“. Nicht vollständig qualifizierte URLs gelten als relativ innerhalb der Erweiterung. Standardmäßig wird die Seite „Neuer Tab“ verwendet. 
- 
    Breitenumber optional Die Breite des neuen Fensters in Pixeln, einschließlich des Rahmens. Wenn nichts angegeben ist, wird standardmäßig die natürliche Breite verwendet. 
 
- 
    
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(window?: Window) => void - 
    FensterFenster optional Enthält Details zum erstellten Fenster. 
 
- 
    
Ausgabe
- 
            Promise<Window | undefined> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
get()
chrome.windows.get(
windowId: number,
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Ruft Details zu einem Fenster ab.
Parameter
- 
    windowIdZahl 
- 
    queryOptionsQueryOptions optional Chrome 88 und höher
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(window: Window) => void - 
    Fenster
 
- 
    
Ausgabe
- 
            Promise<Window> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getAll()
chrome.windows.getAll(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window[]>
Ruft alle Fenster ab.
Parameter
- 
    queryOptionsQueryOptions optional Chrome 88 und höher
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(windows: Window[]) => void - 
    FensterFenster[] 
 
- 
    
Ausgabe
- 
            Promise<Window[]> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getCurrent()
chrome.windows.getCurrent(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Ruft das aktuelle Fenster ab.
Parameter
- 
    queryOptionsQueryOptions optional Chrome 88 und höher
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(window: Window) => void - 
    Fenster
 
- 
    
Ausgabe
- 
            Promise<Window> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getLastFocused()
chrome.windows.getLastFocused(
queryOptions?: QueryOptions,
callback?: function,
): Promise<Window>
Ruft das Fenster ab, das zuletzt den Fokus hatte – in der Regel das Fenster, das „oben“ ist.
Parameter
- 
    queryOptionsQueryOptions optional Chrome 88 und höher
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(window: Window) => void - 
    Fenster
 
- 
    
Ausgabe
- 
            Promise<Window> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
remove()
chrome.windows.remove(
windowId: number,
callback?: function,
): Promise<void>
Schließt ein Fenster und alle darin enthaltenen Tabs.
Parameter
- 
    windowIdZahl 
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:() => void 
Ausgabe
- 
            Promise<void> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
update()
chrome.windows.update(
windowId: number,
updateInfo: object,
callback?: function,
): Promise<Window>
Aktualisiert die Attribute eines Fensters. Geben Sie nur die Eigenschaften an, die geändert werden sollen. Nicht angegebene Eigenschaften bleiben unverändert.
Parameter
- 
    windowIdZahl 
- 
    updateInfoObjekt - 
    drawAttentionboolean optional Wenn true, wird das Fenster so angezeigt, dass die Aufmerksamkeit des Nutzers darauf gelenkt wird, ohne dass sich das aktive Fenster ändert. Der Effekt bleibt so lange bestehen, bis der Nutzer den Fokus auf das Fenster ändert. Diese Option hat keine Auswirkungen, wenn das Fenster bereits den Fokus hat. Setzen Sie diesen Wert auffalse, um eine vorherigedrawAttention-Anfrage abzubrechen.
- 
    Fokussiertboolean optional Wenn true, wird das Fenster in den Vordergrund geholt. Kann nicht mit dem Status „minimiert“ kombiniert werden. Wennfalse, wird das nächste Fenster in der Z-Reihenfolge in den Vordergrund geholt. Kann nicht mit dem Status „Vollbild“ oder „Maximiert“ kombiniert werden.
- 
    Höhenumber optional Die Höhe, auf die das Fenster in Pixeln skaliert werden soll. Dieser Wert wird für Bereiche ignoriert. 
- 
    linksnumber optional Der Abstand vom linken Bildschirmrand, um das Fenster in Pixeln zu verschieben. Dieser Wert wird für Bereiche ignoriert. 
- 
    BundesstaatWindowState optional Der neue Status des Fensters. Die Status „minimized“, „maximized“ und „fullscreen“ können nicht mit „left“, „top“, „width“ oder „height“ kombiniert werden. 
- 
    obennumber optional Der Abstand vom oberen Bildschirmrand, um das Fenster in Pixeln zu verschieben. Dieser Wert wird für Bereiche ignoriert. 
- 
    Breitenumber optional Die Breite, auf die das Fenster in Pixeln skaliert werden soll. Dieser Wert wird für Bereiche ignoriert. 
 
- 
    
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(window: Window) => void - 
    Fenster
 
- 
    
Ausgabe
- 
            Promise<Window> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
Ereignisse
onBoundsChanged
chrome.windows.onBoundsChanged.addListener(
callback: function,
)
Wird ausgelöst, wenn die Größe eines Fensters geändert wurde. Dieses Ereignis wird nur gesendet, wenn die neuen Grenzen übernommen werden, nicht bei laufenden Änderungen.
Parameter
- 
    callbackFunktion Der Parameter callbacksieht so aus:(window: Window) => void - 
    Fenster
 
- 
    
onCreated
chrome.windows.onCreated.addListener(
callback: function,
filters?: object,
)
Wird ausgelöst, wenn ein Fenster erstellt wird.
Parameter
- 
    callbackFunktion Chrome 46 und höherDer Parameter callbacksieht so aus:(window: Window) => void - 
    FensterDetails zum erstellten Fenster. 
 
- 
    
- 
    Filterobject optional - 
    windowTypesBedingungen, die der Typ des Fensters, das erstellt wird, erfüllen muss. Standardmäßig wird ['normal', 'popup']erfüllt.
 
- 
    
onFocusChanged
chrome.windows.onFocusChanged.addListener(
callback: function,
filters?: object,
)
Wird ausgelöst, wenn sich das aktuell fokussierte Fenster ändert. Gibt chrome.windows.WINDOW_ID_NONE zurück, wenn alle Chrome-Fenster den Fokus verloren haben. Hinweis:Bei einigen Linux-Fenster-Managern wird WINDOW_ID_NONE immer unmittelbar vor dem Wechsel von einem Chrome-Fenster zu einem anderen gesendet.
Parameter
- 
    callbackFunktion Chrome 46 und höherDer Parameter callbacksieht so aus:(windowId: number) => void - 
    windowIdZahl ID des neu fokussierten Fensters. 
 
- 
    
- 
    Filterobject optional - 
    windowTypesBedingungen, die der Typ des zu entfernenden Fensters erfüllen muss. Standardmäßig wird ['normal', 'popup']erfüllt.
 
- 
    
onRemoved
chrome.windows.onRemoved.addListener(
callback: function,
filters?: object,
)
Wird ausgelöst, wenn ein Fenster entfernt (geschlossen) wird.
Parameter
- 
    callbackFunktion Chrome 46 und höherDer Parameter callbacksieht so aus:(windowId: number) => void - 
    windowIdZahl ID des entfernten Fensters. 
 
- 
    
- 
    Filterobject optional - 
    windowTypesBedingungen, die der Typ des zu entfernenden Fensters erfüllen muss. Standardmäßig wird ['normal', 'popup']erfüllt.
 
-