Start · Sprachen · JavaScript · Referenz · Window.locationbar

Window.locationbar

Eigenschaft

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

seit JavaScript Baseline: alle modernen Browser (seit 2022 vereinh Kategorie: webapi

Signatur

Window.locationbar

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

Typ
BarProp
Beschreibung
Ein 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}`);
true Adressleiste sichtbar: true

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');
Popup-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 = false setzen. 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 true zurü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 windowFeatures in window.open() ab (z. B. popup oder 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.