Javascript 检测键盘按键信息及键码值对应介绍


Posted in Javascript onJanuary 03, 2013

Javascript中有3个事件句柄在对应键盘的输入状态:keydown、keypress和keyup。
分别对应的意思是:按键被按下(按下按键但还没有抬起)、点击按键(按下并抬起按键)、按键抬起(按键抬起之后)
按键的分类
按键可以分为“实键”和“虚键”
实键可以理解为我们能够看到并打印出来的按键,如字母“A”、数字“1”、字符“?”等等
虚键就是那些无法打印出来起到控制作用的按键,如“Ctrl”、“Alt”、“Shift”、“方向键”等等
IE在处理虚键时有个特例:虚键不会产生keypress事件,必须使用keydown或keyup来捕获
按键码和字符码
按键码是计算机用来识别不同按键的编码,每一个按键都有按键码
字符码是可被打印的实键特有的,对应了键盘上显示的字符
按键码可以使用String.fromCharCode()转换为字符码
按键码和和字符码的对应表可以在本文最后找到。
获取实键

function getKeyCode(e) { 
var keyCode = 0; 
var e = e || window.event; 
keyCode = e.keyCode || e.which || e.charCode; 
alert(keyCode); 
}

稍微解释下
1. e为Firefox等标准浏览器支持的JS隐藏变量,表示一个“事件”;IE系列中没有“e”,而是用window.event来表示“事件”;所以var e = e || window.event;就表示:获取当前正在发生的事件。
2. e.keyCode、e.which、e.charCode都代表获取按键码,但不同的浏览器支持不同的写法
获取虚键
function getKeyCode(e) { 
var keyCode = 0; 
var e = e || window.event; 
if (e.ctrlKey) alert("ctrlKey pressed"); 
if (e.altKey) alert("altKey pressed"); 
if (e.shiftKey) alert("shiftKey pressed"); 
}

字母和数字键的键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57

数字键盘上的键的键码值(keyCode) 功能键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102 . 110        
7 103 / 111        
控制键键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Dw Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 \| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow 38 , 188 '" 222
多媒体键码值(keyCode)
按键 键码 按键 键码 按键 键码 按键 键码
音量加 175            
音量减 174            
停止 179            
静音 173            
浏览器 172            
邮件 180            
搜索 170            
收藏 171            
Javascript 相关文章推荐
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
javascript跨域的方法汇总
Oct 23 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
Feb 24 Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
基于Vuejs和Element的注册插件的编写方法
Jul 03 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
Vue 进阶之路(三)
Apr 18 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
vue.js封装switch开关组件的操作
Oct 26 Javascript
JQuery入门—编写一个简单的JQuery应用案例
Jan 03 #Javascript
JQuery入门—JQuery程序的代码风格详细介绍
Jan 03 #Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
Jan 03 #Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 #Javascript
Javascript 判断是否存在函数的方法
Jan 03 #Javascript
JavaScript中“基本类型”之争小结
Jan 03 #Javascript
Javascript图像处理—亮度对比度应用案例
Jan 03 #Javascript
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
python实现统计代码行数的方法
2015/05/22 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python多线程原理与用法详解
2018/08/20 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
Python 中如何写注释
2020/08/28 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
师范院校学生自荐信范文
2013/12/27 职场文书
写给女生的道歉信
2014/01/08 职场文书
人事助理自荐信
2014/02/02 职场文书
英文自荐信常用句子
2014/03/26 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
送达通知书
2015/04/25 职场文书
运动会运动员赞词
2015/07/22 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
python OpenCV学习笔记
2021/03/31 Python