来自Javascript的某些警报会自动关闭

Certain alerts from Javascript are automatically closing?

本文关键字:Javascript 来自      更新时间:2023-09-26

我要实现对键的响应,所以我从:

开始
window.addEventListener('keydown', function(e) {
    alert(e.keyCode)
}, true)

它适用于大多数键。当我按下一个键时,它会提醒键代码。(当然,这不是最终设计;只是一个测试,看看它是否能使调试更容易。)

然而,我发现了一些有趣的行为。当我使用空格键时,它会做一些奇怪的事情。

当我按空格键时,出现带有数字'32'(空格键码)的警报。但是,当我释放密钥时,警报自动关闭!

我发现用Enter键,我必须再次按下它来关闭警报。没有空格

为什么会这样?

因为浏览器使用空格键来关闭警告消息(如enter)。

解释:有趣的行为是浏览器使用空格键up来关闭警报,因此您将只看到在keydown/keyup之间的对话框(在示例中空格键没有重复的情况下)

您在keydown上触发警报,这意味着警报按钮可能会侦听的keyup事件发生在警报已经存在时,从而立即有效地删除警报。

如果你在keyup上触发警报,这不会是一个问题。