我的webapp已实现键盘快捷键。对于每个键,无论是否按下,我都有一个布尔变量。当出现一些特定的快捷方式时,我会采取一些行动。
问题是,某些操作会导致我的文档失去焦点(例如“打开”对话框,“保存”对话框或简单警告()),而我的webapp无法查明是否已释放密钥。
即使在alert()期间,是否可以继续获取键盘事件?我知道当出现一些快捷方式时,我可以将所有键设置为False。还有更优雅的东西吗?
if(ctrlDown && mDown) alert("...");
请参阅此处:https://jsfiddle.net/fvqhbLa1/1/文档显示是否按下了Ctrl,M,B。但是当你按下Ctrl和M时,会有警报,关闭后文档仍然认为按下了Ctrl和M.现在你可以按Ctrl键并触发alert()而不按M键。
答案 0 :(得分:0)
您可以在发送提醒时重置所有按下的键,因为大多数用户在显示提示框时不会按Ctrl键。
您还可以使用' e.shiftKey' e.ctrlKey'来检查shift,ctrl和alt键是否已关闭。和' e.altKey'属性。
alert("Ctrl + M pressed!");
ctrlDown = bDown = mDown = false;