为什么Javascript在Mac浏览器上按下metaKey时会丢弃keyUp事件?

ano*_*use 19 javascript macos events

在Mac浏览器上,当metakey关闭时,javascript不会收到大多数键的键盘事件(其他修饰键似乎是例外).使用这个jsfiddle来演示(聚焦结果区域并尝试类似cmd + x的东西,x将不会收到keyup事件):http: //jsfiddle.net/mUEaV/

我在Chrome,FF,Safari和Opera的稳定版本中重现了这一点.Windows 7中的控制键似乎没有发生同样的事情.

OS是否劫持了keyup事件?这看起来特别奇怪,因为使用metakey的命令,如save,find,cut,copy等等都在keydown上激活而不是在keyup上,并且可以被javascript劫持就好了.

Slb*_*box 5

我今天了解到,onKeyUpmeta使用时根本无法获取事件。非常不幸且难以解决。你必须以其他方式模仿他们。

编辑:澄清一下,这仅在 Mac 上发生,并且由于事件的操作系统级别处理而发生。它不能被覆盖。很抱歉成为坏消息的承载者。


val*_*nas 2

当您按下这些键时,浏览器窗口是否保留焦点?windows+R在 Windows 中,当按或以及类似的组合键时,您可以获得类似的结果CTRL+ESC,这些组合会使浏览器失去焦点并导致错过事件。