Signatur
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
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}`);
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 ö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);
});
}
});
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);
// Wichtig · Fallstricke
- Nur lesbar: Früher ließ sich
toolbar.visiblein manchen Browsern mit erweiterten Rechten setzen. Heute wird jeder Schreibversuch ignoriert. - Nicht wörtlich nehmen: Moderne Browser geben meist
truezurü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,locationbarusw. immer denselben Wert. - Andere Ursprünge: Auf das
toolbar-Objekt eines Fensters mit anderem Ursprung kann man nicht zugreifen. Der Versuch löst einenSecurityErroraus. - 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.