浏览器有三种按键事件即keydown,keypress和keyup,它们分别对应onkeydown、 onkeypress和onkeyup这三个事件句柄,onkeydown是用户按下键盘时发生的事件,onkeyup是用户松开键盘发生的事件,onkeypress是高级一些的这里所谓的高级是指,当用户按下shift + 1时,keypress是对这个按键事件进行解析后返回一个可打印的“!”字符,而keydown和keyup只是记录了shift + 1这个事件。但是keypress只能针对一些可以打印出来的字符有效,而对于功能按键,如F1-F12、Backspace、Enter、Escape、 PageUP、PageDown和箭头方向等,就不会产生keypress事件,但是可以产生keydown和keyup事件。(FireFox中,功能按键是可以产生keypress事件的。没有实验过);
function keyDown(e) {
var keycode = e.which;
var realkey = String.fromCharCode(e.which);
if(keycode == 38){
realkey = "shang";
}else if(keycode == 40){
realkey = "xia";
}else if(keycode == 39){
realkey = "you";
}else if(keycode == 37){
realkey = "zuo";
}
alert("按键码: " + keycode + "字符: " + realkey);
}
document.onkeydown = keyDown;
document.onkeydown = keyDown;
这句话的意思是每次按下键盘就会执行keyDown
这`个函数,keyDown
函数有个隐藏的变量这里用“e”表示e.which
可以获取到按键的索引值。String.fromCharCode()
可以把索引转换成该键的字母或者数字注意功能按键比如上下左右回车空格等等的索引值不能被转换
.
如果不懂可参考下文点我跳转
相关文章推荐: