const cKeycode = 67;
const SlashKeyCode = 191;
document.onkeyup = function(e){
var e = e || window.event;
if(e.keyCode==cKeycode && e.which == SlashKeyCode) {
alert("C+/ pressed");
return false;
}
}
我刚刚尝试了这一个和许多其他变体,但我无法处理。也许有人知道更好的方法
onkeyup事件不会返回已按下键的集合,它只会一次返回一个键。此外,如果实际释放某个键,onkeyup只会触发,因此,如果您想知道何时按下两个键,则需要利用onkeydown事件。
为此,创建一个全局布尔变量,该变量声明是否实际按下了第一个按钮,如果确实已按下,请检查是否也按下了第二个键。
这里是一个例子。为简单起见,我使用a和e键。
const AKeycode = 65;
const EKeycode = 69;
let AKeycodeDown = false;
document.onkeydown = function(e) {
if (e.keyCode == AKeycode) {
AKeycodeDown = true;
}
if (AKeycodeDown && e.keyCode == EKeycode) {
alert("A+E pressed");
}
}
document.onkeyup = function(e) {
if (e.keyCode == AKeycode) {
AKeycodeDown = false;
}
}
您的代码无效,因为该事件一次仅传递一个键(不包括ctrl和alt之类的键)。为了解决这个问题,我们可以存储是否按下了任何一个键,然后在按下第二个键时进行检查。 无论用户按下c
然后
您可以尝试这个。