Signatur
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
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()}`);
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);
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);
// 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-managementden Zugriff verbietet, zum Beispiel in einem fremden<iframe>ohneallow=\"window-management\", liefertisExtendedimmerfalse. Einfalseheiß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.