【问题标题】:Chrome key events alt key locksChrome 键事件 alt 键锁定
【发布时间】:2016-05-12 13:59:27
【问题描述】:

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

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

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

编辑:在 linux 上的 chromium 上运行良好,在两台 Windows 机器上运行良好,一台 7,一台 8

【问题讨论】:

    标签: javascript google-chrome


    【解决方案1】:

    当您按下 Alt 时,焦点会变为右上角的 3 栏菜单图标,因此按下 Space 会打开该菜单。

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

    如果这种行为不可取,您可以在keydown 事件中尝试return false 或event.preventDefault()。根据 Alt 键上的浏览器限制,这可能有效,也可能无效。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-06
      • 2015-12-12
      • 1970-01-01
      • 2016-07-28
      • 2015-01-23
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多