Start · Sprachen · JavaScript · Referenz · Window.toolbar

Window.toolbar

Eigenschaft

Gibt ein <code>BarProp</code>-Objekt zurück, dessen Eigenschaft <code>visible</code> anzeigt, ob die Symbolleiste des Browserfensters sichtbar ist.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

get Window.toolbar

Beschreibung

Die schreibgeschützte Eigenschaft window.toolbar liefert ein BarProp-Objekt für die Symbolleiste des Browsers (Vor-/Zurück-Schaltflächen, Neu laden usw.). Das Objekt hat nur eine Eigenschaft: visible. Sie ist ein Boolean und nur lesbar.

Sie gehört zur Gruppe der „Bar-Properties“ von Window. Dazu zählen außerdem locationbar, menubar, personalbar, scrollbars und statusbar. Nach der aktuellen HTML-Spezifikation geben alle diese Objekte denselben Wert zurück. visible ist false, wenn das Fenster ein Popup ist, also z. B. mit window.open() und einer Größen- oder Feature-Angabe wie "popup" geöffnet wurde. Sonst ist der Wert true.

In der Praxis zeigt die Eigenschaft deshalb vor allem an, ob das eigene Dokument in einem Popup-Fenster läuft. So kann man die Oberfläche anpassen, z. B. eine eigene „Schließen“-Schaltfläche einblenden. Mit Skripten lässt sich die Sichtbarkeit der Symbolleiste nicht ändern.

Rückgabewert

Typ
BarProp
Beschreibung
Ein BarProp-Objekt mit der schreibgeschützten Eigenschaft visible (boolean). Sie ist true, wenn die Symbolleiste als sichtbar gilt, und false bei Popup-Fenstern.

Beispiele

Sichtbarkeit der Symbolleiste abfragen

const { visible } = window.toolbar;
console.log(`Symbolleiste sichtbar: ${visible}`);
Symbolleiste sichtbar: true

Popup erkennen und die Oberfläche anpassen

// Läuft das Dokument in einem Popup? Dann eine eigene Schließen-Schaltfläche zeigen
const isPopup = !window.toolbar.visible;

if (isPopup) {
  const btn = document.createElement('button');
  btn.textContent = 'Fenster schließen';
  btn.addEventListener('click', () => window.close());
  document.body.append(btn);
}

console.log(isPopup ? 'Popup-Modus' : 'Normales Fenster');
Popup-Modus (wenn per window.open(..., 'popup') geöffnet)

Popup öffnen und dessen Symbolleiste prüfen

// Aufruf muss aus einer Nutzeraktion kommen, sonst blockiert der Popup-Blocker
document.querySelector('#open').addEventListener('click', () => {
  const popup = window.open('/hilfe.html', 'hilfe', 'popup,width=400,height=300');
  if (popup) {
    // gleicher Ursprung erforderlich, sonst SecurityError
    popup.addEventListener('load', () => {
      console.log('Popup-Symbolleiste sichtbar:', popup.toolbar.visible);
    });
  }
});
Popup-Symbolleiste sichtbar: false

Alle Bar-Properties auf einmal ausgeben

const bars = ['locationbar', 'menubar', 'personalbar', 'scrollbars', 'statusbar', 'toolbar'];
const status = Object.fromEntries(bars.map((name) => [name, window[name].visible]));
console.table(status);
{ locationbar: true, menubar: true, personalbar: true, scrollbars: true, statusbar: true, toolbar: true }

// Wichtig · Fallstricke

  • Nur lesbar: Früher ließ sich toolbar.visible in manchen Browsern mit erweiterten Rechten setzen. Heute wird jeder Schreibversuch ignoriert.
  • Nicht wörtlich nehmen: Moderne Browser geben meist true zurück, auch wenn der Nutzer die Leiste ausgeblendet hat oder der Vollbildmodus aktiv ist. Der Wert zeigt praktisch nur an, ob das Fenster ein Popup ist, und nicht den tatsächlichen Zustand der Oberfläche.
  • Alle Bar-Properties sind gleich: Nach der Spezifikation liefern toolbar, menubar, locationbar usw. immer denselben Wert.
  • Andere Ursprünge: Auf das toolbar-Objekt eines Fensters mit anderem Ursprung kann man nicht zugreifen. Der Versuch löst einen SecurityError aus.
  • Kompatibilität: Wird in allen modernen Browsern unterstützt (Chrome, Edge, Firefox, Safari). Das Popup-Verhalten nach der aktuellen Spezifikation ist seit etwa 2021/2022 einheitlich umgesetzt. Ältere Browser können abweichende Werte liefern.