Start · Sprachen · JavaScript · Referenz · VRDisplayEvent.display

VRDisplayEvent.display

Eigenschaft

Die Nur-Lese-Eigenschaft <code>display</code> von <code>VRDisplayEvent</code> gibt das <code>VRDisplay</code> zurück, das das Ereignis ausgelöst hat.

seit JavaScript Veraltet (WebVR 1.1). Nie standardisiert, ersetzt deprecated seit ja Kategorie: webapi

Signatur

VRDisplayEvent.display

Beschreibung

Die Eigenschaft display ist schreibgeschützt. Sie verweist auf das VRDisplay-Objekt, zu dem ein VRDisplayEvent gehört. Solche Ereignisse löst der Browser am window aus, z. B. vrdisplayconnect, vrdisplaydisconnect, vrdisplayactivate, vrdisplaydeactivate und vrdisplaypresentchange.

Mit display findest du heraus, welches Headset gemeint ist. Das ist vor allem wichtig, wenn mehrere VR-Geräte angeschlossen sind oder ein Gerät zur Laufzeit hinzukommt oder entfernt wird. Über das zurückgegebene Objekt kannst du z. B. displayName, displayId oder isPresenting abfragen. Du kannst auch direkt requestPresent() aufrufen, etwa wenn der Nutzer das Headset aufsetzt (vrdisplayactivate).

Die Eigenschaft gehört zur experimentellen WebVR-API. Diese API ist veraltet und wurde durch die WebXR Device API ersetzt. Für neue Projekte solltest du nur noch WebXR (navigator.xr, XRSession) verwenden.

Rückgabewert

Typ
VRDisplay
Beschreibung
Das VRDisplay-Objekt, das mit dem Ereignis verknüpft ist.

Beispiele

Neu angeschlossenes Headset erkennen

window.addEventListener('vrdisplayconnect', (event) => {
  const { display } = event;
  console.log(`Verbunden: ${display.displayName} (ID ${display.displayId})`);
});
Verbunden: Oculus Rift CV1 (ID 1)

Präsentation starten, wenn das Headset aufgesetzt wird

const canvas = document.querySelector('#vr-canvas');

const onActivate = async (event) => {
  const display = event.display;
  if (display.isPresenting) return;
  try {
    await display.requestPresent([{ source: canvas }]);
    console.log('Präsentation gestartet auf', display.displayName);
  } catch (err) {
    console.error('requestPresent fehlgeschlagen:', err);
  }
};

window.addEventListener('vrdisplayactivate', onActivate);
Präsentation gestartet auf Oculus Rift CV1

Getrenntes Gerät aus der Liste entfernen (mit on-Property)

let displays = [];

if (navigator.getVRDisplays) {
  navigator.getVRDisplays().then((list) => { displays = list; });
}

window.onvrdisplaydisconnect = (event) => {
  displays = displays.filter((d) => d.displayId !== event.display.displayId);
  console.log(`${event.display.displayName} getrennt, verbleibend: ${displays.length}`);
};

// Später wieder abmelden:
// window.onvrdisplaydisconnect = null;
Oculus Rift CV1 getrennt, verbleibend: 0

// Wichtig · Fallstricke

  • Veraltet: WebVR wurde nie standardisiert. Unterstützung gab es nur in alten Firefox-Versionen, in Edge (Legacy) und hinter Flags in Chrome. Aktuelle Browser unterstützen die API nicht. Nimm stattdessen die WebXR Device API.
  • Prüfe vor der Nutzung, ob die API vorhanden ist, z. B. mit 'getVRDisplays' in navigator. Andernfalls kann dein Code auf nicht vorhandene Ereignisse warten.
  • display ist schreibgeschützt. Eine Zuweisung wird ignoriert oder wirft im Strict Mode einen Fehler.
  • Vergleiche Geräte über displayId, nicht über den Objektverweis. Nach einem erneuten Verbinden kann der Browser ein neues VRDisplay-Objekt liefern.
  • Rufe requestPresent() nur als Reaktion auf eine Nutzeraktion oder auf vrdisplayactivate auf. Sonst lehnt der Browser den Aufruf ab.