Javascript 我需要一个脚本来检测所有浏览器上的所有长或连续按键

Javascript 我需要一个脚本来检测所有浏览器上的所有长或连续按键,javascript,events,keyboard-events,Javascript,Events,Keyboard Events,我有一个脚本可以在opera中检测到长时间的按键,但在firfox mozilla中却没有。为什么会发生这种情况 Iam使用此代码:- autoComplete.prototype.keyDown=function(oEvent) { oEvent=window.event || oEvent; iKeyCode=oEvent.keyCode; switch(iKeyCode) { case 38: //up arrow th

我有一个脚本可以在opera中检测到长时间的按键,但在firfox mozilla中却没有。为什么会发生这种情况

Iam使用此代码:-

autoComplete.prototype.keyDown=function(oEvent)
 {
    oEvent=window.event || oEvent;
    iKeyCode=oEvent.keyCode;

    switch(iKeyCode)
    {
       case 38: //up arrow
          this.autoComplete.moveUp();
          break;
       case 40: //down arrow
          this.autoComplete.moveDown();
          break;
       case 13: //return key
          window.focus();
          break;
       case 27: //escape key
          this.autoComplete.oDiv.style.display="none";
          break;
    }
 };
这在opera中检测到我的长时间向下按键,但在mozilla中检测不到。请向我建议一个解决方案,以便我的长时间向下按键在所有浏览器中都能正常工作


编辑:从长时间按键开始,我这里指的是连续按键。就像连续向下按键一样。

对于交叉浏览,请使用keyCode和

var ikeyCode = oEvent.keyCode || oEvent.which ;

现在,您可以在所有浏览器中检测到

我尝试的是观看keydown-keyup事件,而不是按键。 当按下键时,将时间写入变量,并使用setTimeout启动计时器。如果键在0.3秒内发生(因此,将存储的时间与当前事件发生时的当前时间进行比较)考虑它是一个轻击,并调用任何需要的功能,清除StimeTimeOut. 如果您的计时器达到3秒,如您的示例中在启动keyup之前,则用户按下按钮以显示警报。 希望这是有道理的。我还没试过,但在我脑子里听起来不错。哈哈

我找到了解决办法。。。 我使用的是
oText.onkeydown=this.keyDown
我应该使用
oText.onkeypress=this.keyDown


谢谢大家的帮助

这是如何检测“长键按下”的?如果我在opera中持续按下该值,它会持续向我发出警报,但在mozilla中,即使我持续按下该键(代码40),它也只会发出1次警报,什么是连续按下?你的意思是反复按它吗?在mozilla中仍然无法检测到continuos向下键。