Javascript 3-Key Maximum with .onkeydown / up Keypress Detection

时间:2013-07-28 23:13:59

标签: javascript keyboard max keypress onkeypress

当我在Mozilla Firefox 22中检测到使用JavaScript按下按键时,在使用document.onkeydowndocument.onkeyup时,我无法检测到按下任何超过3个按键,将每个按键设置为{{1 }或true。我的代码是:

false

但是按下它们后,所有四个键都不能同时设置为document.onkeydown = checkKey; document.onkeyup = checkKeyUp; function checkKey(e) { e = e || window.event; if (e.keyCode == 87 || e.keyCode == 38) keyW = true if (e.keyCode == 65 || e.keyCode == 37) keyA = true if (e.keyCode == 83 || e.keyCode == 40) keyS = true if (e.keyCode == 68 || e.keyCode == 39) keyD = true } function checkKeyUp(e) { e = e || window.event; if (e.keyCode == 87 || e.keyCode == 38) keyW = false if (e.keyCode == 65 || e.keyCode == 37) keyA = false if (e.keyCode == 83 || e.keyCode == 40) keyS = false if (e.keyCode == 68 || e.keyCode == 39) keyD = false } keyW = false keyA = false keyS = false keyD = false 。无论是否被按下,总会有一个最后一个true并保持这种状态。

这是因为网络浏览器一次不需要检测超过3个键(例如[Ctrl] + [Shift] + [+])。

这是我做的一个实验:

http://jsfiddle.net/n5vbm/

有没有办法解决这个问题?

0 个答案:

没有答案