Start · Sprachen · JavaScript · Referenz · Screen.isExtended

Screen.isExtended

Eigenschaft

Nur lesbare Eigenschaft: <code>true</code>, wenn das System des Nutzers mehrere Bildschirme hat, sonst <code>false</code>.

seit JavaScript Chromium 100+ (Chrome, Edge, Opera); nicht in Fire Kategorie: webapi

Signatur

Screen.isExtended

Beschreibung

Screen.isExtended gehört zur Window Management API und steht über window.screen.isExtended zur Verfügung. Die Eigenschaft ist ein einfacher boolescher Wert. Sie zeigt an, ob der Bildschirm, auf dem das aktuelle Fenster liegt, Teil einer Anordnung aus mehreren Bildschirmen ist, also ob der Desktop über mehr als einen Monitor erweitert wurde.

Typischerweise fragt man die Eigenschaft zuerst ab, bevor man die aufwendigere Methode window.getScreenDetails() aufruft. Diese Methode verlangt eine Berechtigung (window-management) und löst unter Umständen eine Abfrage beim Nutzer aus. isExtended braucht dagegen keine Nutzerabfrage. So muss eine Präsentations-, Trading- oder Dashboard-Anwendung die Berechtigung nur dann anfordern, wenn tatsächlich mehrere Bildschirme vorhanden sind.

Wenn sich die Bildschirmanordnung ändert, etwa weil ein Monitor angeschlossen oder entfernt wird, löst das Screen-Objekt das Ereignis change aus. Darin kann man isExtended erneut auslesen und die Oberfläche anpassen.

Rückgabewert

Typ
boolean
Beschreibung
true, wenn mehrere Bildschirme vorhanden sind. false bei nur einem Bildschirm oder wenn die Permissions-Policy window-management den Zugriff blockiert. In nicht unterstützenden Browsern ist der Wert undefined.

Beispiele

Mehrere Bildschirme erkennen (mit Funktionsprüfung)

const hatMehrereBildschirme = () => {
  if (!('isExtended' in window.screen)) {
    return false; // API nicht unterstützt (z. B. Firefox, Safari)
  }
  return window.screen.isExtended;
};

console.log(`Mehrere Bildschirme: ${hatMehrereBildschirme()}`);
Mehrere Bildschirme: true

Berechtigung nur bei Bedarf anfordern

const zeigeBildschirmListe = async () => {
  if (!window.screen.isExtended) {
    console.log('Nur ein Bildschirm – keine Abfrage nötig.');
    return;
  }
  try {
    // Kann eine Berechtigungsabfrage auslösen
    const details = await window.getScreenDetails();
    details.screens.forEach((s, i) => {
      console.log(`#${i}: ${s.label} ${s.width}x${s.height}, primär: ${s.isPrimary}`);
    });
  } catch (err) {
    console.warn('Zugriff verweigert:', err.name);
  }
};

document.querySelector('#praesentieren')
  .addEventListener('click', zeigeBildschirmListe);
#0: DELL U2720Q 2560x1440, primär: true #1: Built-in Retina Display 1512x982, primär: false

Auf das An- oder Abstecken von Monitoren reagieren

const button = document.querySelector('#zweitbildschirm');

const aktualisiere = () => {
  button.hidden = !window.screen.isExtended;
  console.log('isExtended:', window.screen.isExtended);
};

// Ereignis 'change' des Screen-Objekts (Window Management API)
window.screen.addEventListener('change', aktualisiere);
aktualisiere();

// Später wieder abmelden:
// window.screen.removeEventListener('change', aktualisiere);
isExtended: false isExtended: true

// Wichtig · Fallstricke

  • Browser-Unterstützung: Bisher nur in Chromium-basierten Browsern ab Version 100. In Firefox und Safari gibt es die Eigenschaft nicht, der Wert ist dort undefined. Prüfen Sie deshalb immer mit 'isExtended' in screen.
  • Sicherer Kontext: Die Eigenschaft ist nur über HTTPS (bzw. localhost) verfügbar.
  • Permissions-Policy: Wenn die Richtlinie window-management den Zugriff verbietet, zum Beispiel in einem fremden <iframe> ohne allow=\"window-management\", liefert isExtended immer false. Ein false heißt also nicht zwingend, dass nur ein Monitor angeschlossen ist.
  • Datenschutz: Die Eigenschaft verrät nur, ob mehrere Bildschirme vorhanden sind. Anzahl, Positionen und Bezeichnungen liefert erst getScreenDetails(), und nur nach Zustimmung des Nutzers. Trotzdem ist der Wert ein zusätzliches Merkmal für Fingerprinting.
  • Gespiegelte Bildschirme zählen je nach Betriebssystem meist als ein Bildschirm.