我有一个脚本可以检测歌剧中的长按键,但不会在firfox mozilla中发现..为什么会发生这种情况?
我使用此代码: -
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;
}
};
这可以检测我在歌剧中的长按键,但不是在mozilla中。请给我一个解决方案,以便我的长按键在所有浏览器中都能正常工作。
编辑:从长按键开始,我的意思是连续按键在这里。就像连续按下按键一样。答案 0 :(得分:0)
用于交叉浏览使用keyCode和
var ikeyCode = oEvent.keyCode || oEvent.which ;
现在您可以在所有浏览器中检测到
答案 1 :(得分:0)
我尝试的是观看keydown keyup事件而不是keypress。 发生keydown时,将时间写入变量并使用setTimeout启动计时器。如果密钥在0.3秒内发生(因此将存储的时间与此事件触发时的当前时间进行比较)将其视为点击并调用您需要的任何功能并清除setTimeout。 如果您的计时器达到3秒,就像您的示例中的键盘被触发一样,那么用户按住该按钮以显示警报。 希望有道理。我没试过,但听起来不错。 LOL
答案 2 :(得分:0)
我得到了解决方案......
我正在使用oText.onkeydown=this.keyDown;
我应该使用oText.onkeypress=this.keyDown;
感谢大家的帮助!