files/en-us/web/api/vrdisplayevent/reason/index.md
{{APIRef("WebVR API")}}{{Deprecated_Header}}{{Non-standard_Header}}
The reason read-only property of the {{domxref("VRDisplayEvent")}} interface returns a human-readable reason why the event was fired.
[!NOTE] This property was part of the old WebVR API. It has been superseded by the WebXR Device API.
A string representing the reason why the event was fired. The available reasons are defined in the VRDisplayEventReason enum, and are as follows:
mounted — The {{domxref("VRDisplay")}} has detected that the user has put it on (or it has been otherwise activated).navigation — The page has been navigated to from a context that allows this page to begin presenting immediately, such as from another site that was already in VR presentation mode.requested — The user agent has requested that VR presentation mode be started. This allows user agents to include a consistent UI to enter VR across different sites.unmounted — The {{domxref("VRDisplay")}} has detected that the user has taken it off (or it has been otherwise slept/put on standby).window.addEventListener("vrdisplaypresentchange", (e) => {
console.log(
`Display ${e.display.displayId} presentation has changed. Reason given: ${e.reason}.`,
);
});
This property was part of the old WebVR API that has been superseded by the WebXR Device API. It is no longer on track to becoming a standard.
Until all browsers have implemented the new WebXR APIs, it is recommended to rely on frameworks, like A-Frame, Babylon.js, or Three.js, or a polyfill, to develop WebXR applications that will work across all browsers. Read Meta's Porting from WebVR to WebXR guide for more information.
{{Compat}}