Javascript 一个简单的e.altKey测试

Javascript 一个简单的e.altKey测试,javascript,html,keyboard,key,keypress,Javascript,Html,Keyboard,Key,Keypress,摘要: 我想捕捉Alt+Zonkeypress的事件。我正在使用e.altKey来实现这一点。 但是,它在任何地方都不起作用,从textareas到inputs到div[contenteditable]s Shift+any_key(any_key!==Alt)的事件工作正常,但根本没有检测到Alt。我使用keydown进行了测试,效果非常好 我不知道它是否相关,但ctrl键在我的小提琴中也不起作用。我在各种答案中看到了ctrl键被抓到onkeypress,但我不知道为什么它在我的小提琴中

摘要:

我想捕捉
Alt+Z
onkeypress
的事件。我正在使用
e.altKey
来实现这一点。 但是,它在任何地方都不起作用,从
textarea
s到
input
s到
div[contenteditable]
s


Shift+any_key
any_key!==Alt
)的事件工作正常,但根本没有检测到
Alt
。我使用
keydown
进行了测试,效果非常好


我不知道它是否相关,但
ctrl
键在我的小提琴中也不起作用。我在各种答案中看到了
ctrl
键被抓到
onkeypress
,但我不知道为什么它在我的小提琴中不起作用

我所说的不工作是指,即使没有弹出
警报

这一定是一些我可能忽略的简单的东西


注意:只需要Chrome支持,不需要任何库。还有,我的Alt键没有坏。我可以按Alt+F并在Chrome中打开文件菜单

编辑:

因此,我们意识到这是一个事件不会触发的事件(注意到)。尽管如此,如果有人有任何解决办法,使这项工作。请分享。谢谢



更新:已经三年了。铬臭虫需要几年才能修复好吗?或者我应该忘记它(我已经忘记了这个问题,只是在维护工作中遇到了它)

Onkeypress不会为所有键启动

您需要使用onkeydown

注意:不会对所有键(例如ALT、CTRL、, 所有浏览器中的SHIFT、ESC)。仅检测用户是否有 按下一个键,改用onkeydown事件,因为它适用于 所有的钥匙


引用自:

如果您正确地分配了事件处理程序,则可以正常工作编辑等待否这是错误的;无论在Firefox中发生什么情况,它都能正常工作。这就是问题所在。例如:@Pointy谢谢你的回复,但它仍然不起作用:(是的,我意识到我错了。Chrome只是在键盘事件上有不良行为(可能还有Safari;这似乎是一个WebKit问题)。如果我按下
Alt+Z
,会怎么样?这样,就会按下
Z
,因此我相信事件应该触发。另外,为什么
Shift
键在写入时不应该工作?(“所有键(例如Alt、CTRL、Shift、ESC)”?完全停止使用按键。所有操作都使用按键。这些只是示例,但我不知道为什么这样做有效。可能在IE或其他浏览器中不起作用。