Start · Sprachen · JavaScript · Referenz · Window.screen

Window.screen

Eigenschaft

Die schreibgeschützte Eigenschaft <code>window.screen</code> liefert das <code>Screen</code>-Objekt mit Informationen über den Bildschirm, auf dem das aktuelle Fenster dargestellt wird.

seit JavaScript Baseline: alle Browser Kategorie: webapi

Signatur

get Window.screen

Beschreibung

Die Eigenschaft window.screen gibt eine Referenz auf ein Screen-Objekt zurück. Dieses beschreibt den physischen bzw. logischen Bildschirm, auf dem das Browserfenster gerade angezeigt wird, etwa seine Breite (screen.width), Höhe (screen.height), die verfügbare Fläche ohne Taskleiste oder Dock (screen.availWidth, screen.availHeight) sowie die Farbtiefe (screen.colorDepth).

Da window das globale Objekt ist, kann man auch einfach screen schreiben. Die Werte werden in CSS-Pixeln angegeben, nicht in Gerätepixeln. Die tatsächliche physische Auflösung ergibt sich erst zusammen mit window.devicePixelRatio.

Typische Anwendungsfälle sind das Positionieren und Dimensionieren von Popup-Fenstern (window.open), statistische Erfassung von Bildschirmgrößen, das Abfragen oder Sperren der Bildschirmausrichtung über screen.orientation und das Erkennen, ob ein Fenster auf einem erweiterten Mehrbildschirm-Setup liegt (screen.isExtended, Window Management API).

Für responsives Layout ist screen meist nicht das richtige Werkzeug: Die Bildschirmgröße sagt nichts über die Größe des Viewports aus. Dafür sind CSS-Media-Queries, window.matchMedia() oder window.innerWidth/innerHeight besser geeignet.

Rückgabewert

Typ
Screen
Beschreibung
Das dem Fenster zugeordnete Screen-Objekt. Die Eigenschaft ist schreibgeschützt; die Werte des Objekts können sich ändern, wenn das Fenster auf einen anderen Bildschirm verschoben wird.

Beispiele

Grundlegende Bildschirminformationen auslesen

const { width, height, availWidth, availHeight, colorDepth } = window.screen;

console.log(`Bildschirm: ${width}×${height}`);
console.log(`Verfügbar: ${availWidth}×${availHeight}`);
console.log(`Farbtiefe: ${colorDepth} Bit`);

// Physische Auflösung in Gerätepixeln
const dpr = window.devicePixelRatio;
console.log(`Physisch: ${Math.round(width * dpr)}×${Math.round(height * dpr)}`);
Bildschirm: 1920×1080 Verfügbar: 1920×1040 Farbtiefe: 24 Bit Physisch: 3840×2160

Popup-Fenster auf dem Bildschirm zentrieren

const openCenteredPopup = (url, w = 600, h = 500) => {
  const left = (screen.availLeft ?? 0) + (screen.availWidth - w) / 2;
  const top = (screen.availTop ?? 0) + (screen.availHeight - h) / 2;
  return window.open(
    url,
    'login',
    `width=${w},height=${h},left=${Math.round(left)},top=${Math.round(top)}`
  );
};

document.querySelector('#login-btn')?.addEventListener('click', () => {
  openCenteredPopup('https://example.com/oauth');
});

Bildschirmausrichtung beobachten

const logOrientation = () => {
  const { type, angle } = screen.orientation;
  console.log(`Ausrichtung: ${type} (${angle}°)`);
};

logOrientation();
screen.orientation.addEventListener('change', logOrientation);
Ausrichtung: landscape-primary (0°)

Mehrbildschirm-Setup erkennen

if ('isExtended' in screen) {
  console.log(screen.isExtended
    ? 'Mehrere Bildschirme angeschlossen'
    : 'Nur ein Bildschirm');
} else {
  console.log('Window Management API nicht unterstützt');
}
Nur ein Bildschirm

// Wichtig · Fallstricke

  • Nicht für Layout verwenden: screen.width ist die Größe des Bildschirms, nicht die des Browserfensters. Für responsives Design sind Media-Queries, matchMedia() oder innerWidth zu nutzen.
  • CSS-Pixel: Alle Maße sind CSS-Pixel und hängen von Zoom und Systemskalierung ab. Auf HiDPI-Displays mit devicePixelRatio umrechnen.
  • Datenschutz/Fingerprinting: Bildschirmwerte werden gern für Browser-Fingerprinting genutzt. Firefox (mit privacy.resistFingerprinting), Tor Browser und Safari können deshalb gerundete oder gefälschte Werte liefern.
  • Nicht standardisierte Eigenschaften: availLeft/availTop gibt es nicht in allen Browsern; isExtended und das Event change gehören zur Window Management API und werden nur von Chromium-basierten Browsern unterstützt (sichere Umgebung nötig).
  • screen.orientation.lock() funktioniert meist nur im Vollbildmodus und auf Mobilgeräten.
  • Die Eigenschaft window.screen selbst wird von allen Browsern unterstützt.