Signatur
Beschreibung
Die schreibgeschützte Eigenschaft window.locationbar liefert ein BarProp-Objekt, das die Adressleiste (Location Bar) des aktuellen Browserfensters repräsentiert. Das Objekt hat genau eine relevante Eigenschaft: visible, einen booleschen Wert.
Laut HTML-Standard ist visible false, wenn das Fenster ein Popup ist, z. B. ein mit window.open() und einer Größenangabe in windowFeatures geöffnetes Fenster. In normalen Tabs und Fenstern ist der Wert true. Andere BarProp-Eigenschaften wie menubar, toolbar, personalbar, scrollbars und statusbar liefern aus Datenschutzgründen immer denselben Wert.
In der Praxis nutzt man die Eigenschaft vor allem, um festzustellen, ob die eigene Seite in einem Popup läuft. Das ist z. B. bei OAuth-Anmeldefenstern oder Hilfefenstern nützlich, wo das Layout angepasst werden oder das Fenster sich nach getaner Arbeit selbst schließen soll.
Rückgabewert
BarProp-Objekt mit der schreibgeschützten Eigenschaft visible (boolean): true in normalen Fenstern oder Tabs, false in Popup-Fenstern.Beispiele
Sichtbarkeit der Adressleiste prüfen
const bar = window.locationbar;
console.log(bar instanceof BarProp);
console.log(`Adressleiste sichtbar: ${bar.visible}`);
Popup-Modus erkennen und Layout anpassen
// Läuft die Seite in einem Popup, wird die Navigation ausgeblendet
const istPopup = !window.locationbar.visible;
if (istPopup) {
document.body.classList.add('popup-modus');
document.querySelector('nav')?.remove();
}
console.log(istPopup ? 'Popup-Ansicht' : 'Normale Ansicht');
OAuth-Popup öffnen und darin automatisch schließen
// Im Hauptfenster:
const loginPopup = () =>
window.open('/auth/callback', 'login', 'popup,width=500,height=600');
// Auf der Seite /auth/callback:
const beendeLogin = () => {
if (!window.locationbar.visible && window.opener) {
window.opener.postMessage({ type: 'login-ok' }, location.origin);
window.close();
}
};
beendeLogin();
// Wichtig · Fallstricke
- Nur lesbar: Früher konnte man mit erweiterten Rechten
locationbar.visible = falsesetzen. Heute ignorieren alle Browser solche Zuweisungen. Die Adressleiste lässt sich per Skript nicht ausblenden. - Uneinheitliches Verhalten in älteren Browsern: Vor der Vereinheitlichung im HTML-Standard (etwa 2022) gaben manche Browser immer
truezurück, auch in Popups. Verlassen Sie sich für sicherheitsrelevante Entscheidungen deshalb nicht auf diesen Wert. - Ob ein Fenster als Popup gilt, hängt von
windowFeaturesinwindow.open()ab (z. B.popupoder Größenangaben). Ob tatsächlich ein Popup entsteht, bestimmt aber der Browser, etwa abhängig von Benutzereinstellungen. - In iframes gibt die Eigenschaft den Zustand des obersten Fensters wieder.