本文详细解析JavaScript中onkeydown、onkeypress和onkeyup三个键盘事件的用法。通过对比DOM标准与IE浏览器的兼容写法,提供获取键码和字符的通用方法,并附带完整的字母、数字及功能键键码对照表,帮助开发者实现跨浏览器的键盘交互功能。
JavaScript键盘事件概述
本文通过具体实例深入分析JavaScript中键盘事件的应用方法,旨在为读者提供可参考的解决方案。
JavaScript中的键盘事件主要涵盖onkeydown、onkeypress以及onkeyup这三种类型。
键盘事件初始化与浏览器兼容
在进行事件处理前,需先进行初始化设置。
function keyDown(){}
document.onkeydown = keyDown;
//论按下键盘上的哪个键,都将调用KeyDown()函数。
在遵循DOM标准的浏览器环境中,实现方式如下:
function keyDown(e) {
var keycode = e.which; //取得对应的键值(数字)
var realkey = String.fromCharCode(e.which); //取得代表改键的真正字符
alert("按键码: " + keycode + " 字符: " + realkey);
}
document.onkeydown = keyDown
针对IE浏览器的特定环境下,实现方式有所不同:
function keyDown() {
var keycode = event.keyCode; //IE下取得键值的方法
var realkey = String.fromCharCode(event.keyCode);
alert("按键码: " + keycode + " 字符: " + realkey);
}
document.onkeydown = keyDown
为了兼容不同浏览器,通常采用以下通用方法:
function keyUp(e) {
var currKey=0,e=e||event;
currKey=e.keyCode||e.which||e.charCode;
var keyName = String.fromCharCode(currKey);
alert("按键码: " + currKey + " 字符: " + keyName);
}
document.onkeyup = keyUp;
键盘事件使用原则与键码适用范围
使用原则建议:对于功能按键,keydown事件最为适用;而对于可打印字符按键,keypress事件更为合适。需要注意的是,以下列出的键码值在文本框输入时完全有效;若在<body>标签中使用,则仅字母键、数字键及部分控制键可用,且其字母和数字键的键值与ASCII值保持一致。
字母、数字及功能键键码对照表
以下是字母和数字键对应的键码值(keyCode):
按键与键码对应关系如下:A对应65,B对应66,C对应67,D对应68,E对应69,F对应70,G对应71,H对应72,I对应73,J对应74,K对应75,L对应76,M对应77,N对应78,O对应79,P对应80,Q对应81,R对应82,S对应83,T对应84,U对应85,V对应86,W对应87,X对应88,Y对应89,Z对应90;数字0对应48,1对应49,2对应50,3对应51,4对应52,5对应53,6对应54,7对应55,8对应56,9对应57。
此外,还需关注数字键盘上的键以及功能键的键码值(keyCode)。
按键 键码 0 96 1 97 2 98 3 99 4 100 5 101 6 102 7 103 8 104 9 105 * 106 + 107 Enter 108 - 109 . 110 / 111 F1 112 F2 113 F3 114 F4 115 F5 116 F6 117 F7 118 F8 119 F9 120 F10 121 F11 122 F12 123
控制键的键码值(keyCode)也是开发中常用的参考数据。
控制键对应关系如下:BackSpace对应8,Esc对应27,右箭头Right Arrow对应39,左箭头Left Arrow对应37,下箭头Down Arrow对应40,上箭头Up Arrow对应38,减号-_对应189,小数点.>对应190,空格Spacebar对应32,Tab键对应9,Clear对应12,Page Up对应33,Page Down对应34,Enter对应13,Insert对应45,分号;:对应186,Delete对应46,反引号`~对应192,问号/?对应191,Num Lock对应144,Control对应17,Home对应36,End对应35,Shift对应16,左方括号[{对应219,右方括号}]对应221,反斜杠\|对应220,等号=+对应187,逗号,<对应188,单引号'"对应222,Caps Lock对应20(原文拼写为Cape Lock),Alt对应18。
希望上述关于JavaScript程序设计的键盘事件介绍能对大家有所帮助。