8

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?

1
  • 1
    @Satpal The API used in the answer there is deprecated now. I have tried using the answer but it failed. Commented Dec 1, 2015 at 10:14

2 Answers 2

8

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

Sign up to request clarification or add additional context in comments.

1 Comment

Warning for others finding this: this is not IE compatible. There is more discussion on how to get around that here: stackoverflow.com/questions/26596123/…
5

Create your event variable like that :

var e = new Event('keydown');

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

1 Comment

Better JSfiddle, we can see something there.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.