Chrome键事件alt键锁

时间:2016-05-12 13:59:27

标签: javascript google-chrome

在chrome中,按下alt似乎会锁定keydown / keyup回调。 要重现,请在任何页面的js控制台中输入以下内容:

var a = function(e){
console.log(e);
};
document.body.onkeydown = a;
document.body.onkeyup = a;

然后点击进入页面并按键,您应该在控制台中看到按键和释放事件。 但是如果你反复按下alt,你会发现你只看到每按二次按键的事件。实际上,如果您按下alt一次,然后按其他键,则吞下事件。 我疯了吗?这是什么? 澄清一下,一切似乎都在Firefox中运行良好。

编辑:在linux上工作正常,在两台Windows机器上工作,一台7,一台8

1 个答案:

答案 0 :(得分:3)

当您按 Alt 时,焦点会变为右上角的3条菜单图标,这样按 Space 将打开所述菜单。

Chrome Menu button location

(第二次按 Alt 会将焦点返回到网页。)

如果不希望出现这种情况,您可以在return false事件中尝试event.preventDefault()keydown。根据浏览器对 Alt 键的限制,这可能有效,也可能无效。

在我的Windows 7上,当您按 Alt 时,Firefox将打开文件,编辑,查看等菜单。如果你没有在你的身上看到这种行为,我会感到惊讶。

Firefox menus appear when you press Alt