dev*_*per 14 javascript keyboard events
我使用foloowing代码来跟踪关键事件
oEvent=window.event || oEvent;
iKeyCode=oEvent.keyCode || oEvent.which;alert(iKeyCode);
Run Code Online (Sandbox Code Playgroud)
它在firefox中给我提醒但在IE和Chrome中没有.它给了我所有其他keyborad字符,但不是esc键和箭头键.
如何使用javascript检测chrome和IE中的esc键和箭头键?
Gau*_*rav 20
你真的不需要JQuery,虽然它确实使你的代码更短.
您将不得不使用keyDown事件,keyPress将无法在旧版本的IE中用于箭头键.
这里有一个完整的教程供您使用,请参阅靠近页面底部的箭头键示例:http: //www.cryer.co.uk/resources/javascript/script20_respond_to_keypress.htm
这里是我使用的一些代码,因为我必须处理带缓冲的重复按键,所以有点简化:
document.onkeydown = function(event) {
if (!event)
event = window.event;
var code = event.keyCode;
if (event.charCode && code == 0)
code = event.charCode;
switch(code) {
case 37:
// Key left.
break;
case 38:
// Key up.
break;
case 39:
// Key right.
break;
case 40:
// Key down.
break;
}
event.preventDefault();
};
Run Code Online (Sandbox Code Playgroud)
Pio*_*iak 13
我刚遇到同样的问题.Chrome处理keypress和keydown/ keyup事件至少有一个区别.keypress事件在Chrome不解雇箭头键,而对于keydown与keyup它.
问题:当你执行shift-7(&符号)时,webkit会向keypress发送一个键码38(向上箭头).
摘要:&和向上两者相等38.%并且两者都等于37.'并且右边都等于39.(对于firefox和opera而言,两者都等于40.,37/38/39/40不会发送给&, %,',(.他们只发送上,下,左,右.但是webkit,即发送37/38/39/40两个箭头键和&,%,',(注意上/下)/left/right,webkit将charCode设置为0,但不设置为&,%,',(.
解决方案:因此,如果您通过键码处理这些事件,则需要在shift键关闭时忽略或检查charCode是否为0
使用 jQuery 并使用类似这样的东西:
$(document).keydown(function(e){
if (e.keyCode == 37) {
alert( "left pressed" );
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
字符代码:
37:左
38:向上
39:对
40:向下
| 归档时间: |
|
| 查看次数: |
17223 次 |
| 最近记录: |