如何获得正确释放密钥的时间(JS' keyup不准确)?

时间:2018-03-03 11:14:34

标签: javascript

当我使用keyup时,我从来没有得到时间戳,关于keydown + 500ms,即使我按住键的时间更长。 我正在使用

 document.addEventListener('keyup', function(event) {
 if (event.code == 'KeyZ' )
  {
    var d = new Date();var time = d.getTime();
  }
 });

1 个答案:

答案 0 :(得分:1)

这是因为按住键时会多次触发keydown。尝试在console.log事件处理程序中放置keydown,然后您就会看到。

此行为在浏览器和操作系统之间不一致。有关行为的详细列表,请查看http://unixpapa.com/js/key.html

按下某个键时,每个keydown事件之间的时间间隔甚至可以在Windows计算机上配置,也可能在其他操作系统上配置。见https://answers.microsoft.com/en-us/windows/forum/windows_xp-performance/can-you-disable-the-keyboard-autorepeat-function/ce1b29bc-544b-e011-8dfc-68b599b31bf5