Gamepad Event Logger

Compare addEventListener vs the new ongamepadconnected / ongamepaddisconnected IDL attribute approach side-by-side. Both listeners are wired simultaneously so you can see every event and which handler fired first.

Connected gamepads: 0

Event log

addEventListener ongamepadconnected
No events yet. Connect a gamepad and press any button.

Code comparison

active
// Works in all browsers
window.addEventListener(
  'gamepadconnected',
  (e) => {
    console.log(e.gamepad);
  }
);
window.addEventListener(
  'gamepaddisconnected',
  (e) => {
    console.log(e.gamepad);
  }
);
active
// New in Chrome 143
window
  .ongamepadconnected
  = (e) => {
    console.log(e.gamepad);
  };
window
  .ongamepaddisconnected
  = (e) => {
    console.log(e.gamepad);
  };

IDL attribute support:

Live controller state

Press any button on a real gamepad to activate polling. Buttons flash when pressed; axes show current deflection.

No gamepads detected. Connect one and press any button.