检测keycode ALT+;L通过Javascript

检测keycode ALT+;L通过Javascript,javascript,keycode,Javascript,Keycode,我尝试检测用户是否按F12或ALT+L document.onkeydown = function (event) { event = (event || window.event); if (event.keyCode == 123 || (event.keyCode == 18 && event.keyCode == 76)) { //do anything return false; } } 我做错了什么?事件。ke

我尝试检测用户是否按F12或ALT+L

document.onkeydown = function (event) {
    event = (event || window.event);
    if (event.keyCode == 123 || (event.keyCode == 18 && event.keyCode == 76)) {
        //do anything
        return false;
    }
}

我做错了什么?

事件。keyCode
只包含一个值。您可以使用
event.altKey
来检测是否按下了
alt

document.onkeydown = function (event) {
    event = (event || window.event);
    if (event.keyCode == 123 || (event.keyCode === 76 && event.altKey)) {
        //do something
        return false;
    }
}

标准方法是创建一个bool来检测当前是否按下了“alt”键,然后创建一个单独的if来检测这是否正确以及L键是否刚刚按下-请参阅小提琴:

这适用于持有任意组合的密钥-您可以为大于两个的多个密钥持有创建一个数组:

held = [];
...
if (event.keyCode == i) {held[i] = true;}
...

依此类推

我试着使用它,但只需按Altin键,功能就会启动,这不是太复杂了吗?您只需检查
event.altKey
是否为true。如果您想检测是否有更多的键(不是alt/ctrl/shift),您的建议可能会很有用。是的,考虑到手头的问题,有点过头了-设法忽略的只是alt-+1,您的键更干净
held = [];
...
if (event.keyCode == i) {held[i] = true;}
...