Gamepad.index

The Gamepad.index property of the Gamepad interface returns an integer that is auto-incremented to be unique for each device currently connected to the system.

This can be used to distinguish multiple controllers; a gamepad that is disconnected and reconnected will retain the same index.

Syntax

readonly    attribute long                index;

Example

window.addEventListener("gamepadconnected", function() {
  var gp = navigator.getGamepads()[0];
  gamepadInfo.innerHTML = "Gamepad connected at index " + gp.index + ": " + gp.id + ".";
});

Value

A number.

Specifications

Specification Status Comment
Gamepad
The definition of 'Gamepad.index' in that specification.
Working Draft Initial definition

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
index
Experimental
Chrome Full support 35
Full support 35
No support 21 — 34
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Edge Full support 12Firefox Full support 29
Full support 29
No support 24 — 28
Disabled
Disabled From version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE No support NoOpera Full support 22
Full support 22
No support 15 — 21
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari Full support 10.1WebView Android No support NoChrome Android Full support 35
Full support 35
No support 25 — 34
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Firefox Android Full support 32Opera Android Full support 22
Full support 22
No support 14 — 21
Prefixed
Prefixed Implemented with the vendor prefix: webkit
Safari iOS Full support 10.3Samsung Internet Android Full support 4.0
Full support 4.0
No support 2.0 — 3.0
Prefixed
Prefixed Implemented with the vendor prefix: webkit

Legend

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.
User must explicitly enable this feature.
Requires a vendor prefix or different name for use.
Requires a vendor prefix or different name for use.

See also

Using the Gamepad API