【问题标题】:Certain alerts from Javascript are automatically closing?来自 Javascript 的某些警报会自动关闭?
【发布时间】:2013-03-23 14:24:09
【问题描述】:

我打算实现对键的响应,所以我开始:

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

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

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

当我按下空格键时,会出现带有数字“32”(空格键码)的警报。但是,当我松开按键时,警报会自动关闭!

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

这是为什么?

【问题讨论】:

  • 这是因为空格键是“按下”警报上的“确定”按钮并关闭它的键之一。
  • @JonathanM 但是EnterReturn 也是如此,当我按下它时它不会关闭它。
  • 你用的是什么浏览器?我无法在 FF17 中复制。
  • @David,是的。我怀疑如果他测试这些键,他会得到相同的行为。
  • @JonathanM 奇数。对于Enter,我必须再次按下它才能关闭警报。

标签: javascript key alert space


【解决方案1】:

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

解释:有趣的行为是浏览器使用空格键键关闭警报,所以你只会看到你的键/键之间的对话框(在空格键不重复的例子中)

【讨论】:

    【解决方案2】:

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

    如果您改为在 keyup 上触发警报,这将不是问题。

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2016-09-09
      • 2012-03-18
      • 2014-05-30
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多