【问题标题】:Keydown event behavior when holding down Shift key按住 Shift 键时的 Keydown 事件行为
【发布时间】:2017-05-15 01:51:48
【问题描述】:

我注意到,当您按住像 A 这样的字母键时,只要您按住它,就会连续触发 keydown 事件。但是,当您按住 shift 时,该事件只会触发一次。我想将我的应用程序逻辑基于该观察结果,但我不知道这是否是每个浏览器中的标准行为。谁能确认一下?

【问题讨论】:

  • 我不明白为什么 shift 需要“自动发送垃圾邮件”。除非您确实需要直接对 shift press 做出反应,否则您最好忽略 shift press,然后在按下字母时检查事件修饰符。

标签: javascript events keyboard dom-events keydown


【解决方案1】:

很遗憾,这不是您可以依赖的标准行为。我对我安装的几个浏览器(IE Edge、IE 11、Chrome 55,都在 Windows 机器上)进行了快速测试,其中所有 3 个浏览器自动重复两个字母键的 keydown 事件(如A),和修饰键(如shift),这与您所说的浏览器所做的相反。

Jan Wolter herePeter-Paul Koch here 所述,在不同的浏览器中一致地处理键盘事件一直很困难。 Wolter 写了关于自动重复的文章:

如果一个键被按住足够长的时间,它通常会自动重复,并且每次自动重复都会触发一些额外的事件。在 Macintosh 和 Linux 系统上,修饰键通常不会自动重复,但在 Windows 系统上会自动重复

然后 Wolter 继续列出各种例外情况。

【讨论】:

  • 我使用的是 Linux,所以这是有道理的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
相关资源
最近更新 更多