Oliver
Oliver

Reputation: 1644

Emulate a space bar keypress

I've searched everywhere, read the docs on MDN, but I can't seem to solve this problem.

I want to emulate the client pressing the space bar using JavaScript.

I've tried:

var e = new KeyboardEvent('keydown');
e.which = e.keyCode = 32; // 32 is the keycode for the space bar
document.dispatchEvent(e);

However this hasn't worked for whatever reason; if the following event handler is put before the above code:

document.addEventListener('keydown', function(ev){
  console.log(ev.which);
});

0 is logged to the console.

For some reason, the event is triggered but the key is always 0

Can someone help me fix it?

Upvotes: 8

Views: 35328

Answers (2)

J. Gobet
J. Gobet

Reputation: 179

Create your event variable like that :

var e = new Event('keydown');

Demo : https://jsfiddle.net/zw7d7d61/

Upvotes: 5

R Lam
R Lam

Reputation: 393

You may do on this way

var e = new KeyboardEvent('keydown',{'keyCode':32,'which':32});

Demo: https://jsfiddle.net/5se13tmg/

Reference: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent

Upvotes: 8

Related Questions