This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
* Some parts of this feature may have varying levels of support.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The GamepadEvent interface of the Gamepad API contains references to gamepads connected to the system, which is what the gamepad events gamepadconnected and gamepaddisconnected are fired in response to.
GamepadEvent()Returns a new GamepadEvent object.
GamepadEvent.gamepad Read only
Returns a Gamepad object, providing access to the associated gamepad data for the event fired.
The gamepad property being called on a fired gamepadconnected event.
window.addEventListener("gamepadconnected", (e) => {
console.log(
"Gamepad connected at index %d: %s. %d buttons, %d axes.",
e.gamepad.index,
e.gamepad.id,
e.gamepad.buttons.length,
e.gamepad.axes.length,
);
});
And on a gamepaddisconnected event.
window.addEventListener("gamepaddisconnected", (e) => {
console.log(
"Gamepad disconnected from index %d: %s",
e.gamepad.index,
e.gamepad.id,
);
});
| Specification |
|---|
| Gamepad> # gamepadevent-interface> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
GamepadEvent |
35 | 12 | 29 | 22 | 10.1 | 35 | 32 | 22 | 10.3 | 3.0 | 37 | 10.3 |
GamepadEvent |
21 | 12 | 29 | 15 | 10.1 | 25 | 32 | 14 | 10.3 | 1.5 | 4.4 | 10.3 |
gamepad |
21 | 12 | 29 | 15 | 10.1 | 25 | 32 | 14 | 10.3 | 1.5 | 4.4 | 10.3 |
secure_context_required |
86 | 86 | 91 | 72 | No | 86 | 91 | No | No | No | No | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GamepadEvent