当我在Mozilla Firefox 22中检测到使用JavaScript按下按键时,在使用document.onkeydown
和document.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] + [+])。
这是我做的一个实验:
有没有办法解决这个问题?