2013-03-23 92 views
0

我要实现响应按键,于是我开始了与:来自Javascript的某些提醒会自动关闭?

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

它与大多数按键。当我按下某个键时,它会提示键码。 (当然,这不是最终的设计;只是一个测试,看看它是否会使调试更容易。)

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

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

我发现使用Enter键时,我必须再次按下才能关闭警报。尽管没有空间。

这是为什么?

+4

这是因为空格键是“按下”警报上的“确定”按钮之一,关闭它。 – 2013-03-23 14:25:39

+0

@JonathanM但是'Enter'或'Return'也是如此,当我按下它时它并没有关闭它。 – 0x499602D2 2013-03-23 14:26:31

+0

你使用什么浏览器?我无法在FF17中复制。 – 2013-03-23 14:26:31

回答

1

由于浏览器使用空格键关闭警报消息(如回车)。

解释:有趣的行为是浏览器使用空格键来关闭警报,所以你只会看到你的keydown/keyup对话框(在空格键没有重复的情况下)

+0

哦,这很有趣。谢谢! (可以在12分钟内接受) – Doorknob 2013-03-23 14:26:31

0

您正在触发keydown上的警报,这意味着警报按钮可能监听的警报按钮事件发生在警报已存在时,可以立即有效地移除警报。

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