Javascript 获取当前按下的键的列表,不包括keyup/keydown

Javascript 获取当前按下的键的列表,不包括keyup/keydown,javascript,jquery,jquery-plugins,onkeydown,onkeyup,Javascript,Jquery,Jquery Plugins,Onkeydown,Onkeyup,今天我遇到了一个奇怪的问题:一个以前一直有效的脚本停止工作了,因为显然在每次“按键”事件之后都会直接触发“keyup”,杀死了一些等待长时间按键的事件 在四处测试之后,我发现这是我的协同效应造成的 最后,我找到了问题的解决方案:一个jQuery扩展,它允许我延迟(并收集)某些事件,即 这有点奏效,直到我注意到另一个问题:一次有多个键。比方说,你按下“向上”按钮和“向左”按钮,然后同时放开这两个按钮。$.debounce()将把这两个键作为同一个keyup事件处理,让事件只触发一次,并导致even

今天我遇到了一个奇怪的问题:一个以前一直有效的脚本停止工作了,因为显然在每次“按键”事件之后都会直接触发“keyup”,杀死了一些等待长时间按键的事件

在四处测试之后,我发现这是我的协同效应造成的

最后,我找到了问题的解决方案:一个jQuery扩展,它允许我延迟(并收集)某些事件,即

这有点奏效,直到我注意到另一个问题:一次有多个键。比方说,你按下“向上”按钮和“向左”按钮,然后同时放开这两个按钮。$.debounce()将把这两个键作为同一个keyup事件处理,让事件只触发一次,并导致
event.keyCode
只包含一个键而不是两个键

最简单的解决方案是,在触发keyup事件时检查所有按下的键,而不依赖
event.keyCode
,因为在这种情况下它是不完整的

我的问题是:在不依赖keydown/keydup事件的情况下,我如何找出还有哪些键仍然被按下?(因为协同效应,它们无法工作)

是否有某种
窗口
变量跟踪按键


有什么想法吗?

你能解释一下你(从一开始)想做什么吗?我想得到用户当前按下(并按住)的所有键的列表,不依赖按键向上/按键向下事件。你所说的
是什么意思?我的synergy负责这一点
?synergy允许一个人在两台计算机之间共享同一个键盘/鼠标。显然,这似乎会导致keydown/keyup事件出现一些问题(在每次keydown事件之后,都会触发一个keyup事件,即使您还没有松开键)-如果您在用户按下某个键时尝试执行某项操作,则会导致一些问题您的问题看起来与我自己的一个问题(已经有答案)非常相似:
$(window).keyup( $.debounce(100, onKeyUp) )
function onKeyUp(event) {
    // get all keys pressed
}