第二次按键上的Javascript

1 javascript keypress onkeypress

我一直想知道是否有一种简单的方法可以检测用户是否在一秒内两次按下键盘上的相同字符.我写了一些有用的代码,但它不可靠.

var escapeCount = 0;

 function reset() {
   escapeCount = 0;
   setTimeout('reset();', 1000);
 }

 window.onload = function() {
   reset();
 };

 document.onkeyup = function(e) {
   if (!e) var e = window.event;
   var code = e.keyCode ? e.keyCode : e.which;
   if (code == 27) escapeCount +=1;
   if (escapeCount == 2) {
     // stuff on second escape
   }
 };
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?谢谢

Max*_*keh 5

从最后一个字符被按下1秒后重置是有意义的.例:

var lastChar = -1;

document.onkeyup = function(e) {
  if (!e) var e = window.event;
  var code = e.keyCode ? e.keyCode : e.which;

  if (lastChar == code) {
    // Same key was pressed twice in a row within 1 second.
  } else {
    lastChar = code;
    setTimeout(function() {lastChar = -1;}, 1000);
  }
};
Run Code Online (Sandbox Code Playgroud)