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 相关文章推荐
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
js怎么终止程序return不行换jfslk
May 30 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
Javascript学习指南
Dec 01 Javascript
js+canvas绘制五角星的方法
Jan 28 Javascript
jQuery实现动态添加tr到table的方法
Dec 26 Javascript
微信小程序自定义导航教程(兼容各种手机)
Dec 12 Javascript
js中null与空字符串""的区别讲解
Jan 17 Javascript
Angular8 实现table表格表头固定效果
Jan 03 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 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
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
python决策树之C4.5算法详解
2017/12/20 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
django 取消csrf限制的实例
2020/03/13 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
专业销售业务员求职信
2013/11/18 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
高一军训的心得体会
2014/09/01 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
2014年法务工作总结
2014/12/11 职场文书
追讨欠款律师函
2015/06/24 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
初中政治教学工作总结
2015/08/13 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书