The onselect property of the XRSession object is the event handler for the select event, which is dispatched when a primary action is completed successfully by the user. This typically represents the pressing of a button or trigger, a hand gesture, or a spoken command.

The select event is sent after tracking of the primary action begins, as announced by the selectstart event, and immediately before the tracking of the primary action ends, which is announced by the selectend event.

To learn more about how WebXR actions work, see Inputs and input sources.


xrSession.onselect = selectHandlerFunction;


An event handler function to be invoked when the XRSession receives a select event.


This example handles select event which occur on the user's main hand (as given by a user object's handedness property); if that value matches the value of the XRInputSource property handedness, we know that the device is held in the user's main hand.

xrSession.onselect = event => {
  let source = event.inputSource;

  if (source.handedness == user.handedness) {
    if (source.targetRayMode == "tracked-pointer") {
      let targetRayPose = event.frame.getPose(source.targetRaySpace, myRefSpace);

      if (targetRayPose) {


WebXR Device API
# dom-xrsession-onselect

Browser compatibility

BCD tables only load in the browser

See also