VRDisplayEvent: reason property

Deprecated

Avoid using this feature in new projects. Development of the WebVR API halted in favor of WebXR. This feature may be a candidate for removal from web standards or browsers.

Consider using the following features instead: WebXR.

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

The reason read-only property of the 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.

Value

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 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 VRDisplay has detected that the user has taken it off (or it has been otherwise slept/put on standby).

Examples

js
window.addEventListener("vrdisplaypresentchange", (e) => {
  console.log(
    `Display ${e.display.displayId} presentation has changed. Reason given: ${e.reason}.`,
  );
});

Specifications

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.

Browser compatibility

See also