当我使用keyup时,我从来没有得到时间戳,关于keydown + 500ms,即使我按住键的时间更长。 我正在使用
document.addEventListener('keyup', function(event) {
if (event.code == 'KeyZ' )
{
var d = new Date();var time = d.getTime();
}
});
答案 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