• Javascript 检测键盘按键


    Javascript中 有3个事件句柄在对应键盘的输入状态:keydown、keypress和keyup。
    分别对应的意思是:按键被按下(按下按键但还没有抬起)、点击按键(按下并抬起按键)、按键抬起(按键抬起之后)


    按键的分类:


    按键可以分为“实键”和“虚键”
    实键可以理解为我们能够看到并打印出来的按键,如字母“A”、数字“1”、字符“?”等等
    虚键就是那些无法打印出来起到控制作用的按键,如“Ctrl”、“Alt”、“Shift”、“方向键”等等
    IE在处理虚键时有个特例:虚键不会产生keypress事件,必须使用keydown或keyup来捕获


    按键码和字符码


    按键码是计算机用来识别不同按键的编码,每一个按键都有按键码
    字符码是可被打印的实键特有的,对应了键盘上显示的字符
    按键码可以使用String.fromCharCode()转换为字符码
    按键码和和字符码的对应表可以在本文最后找到。


    获取实键

    [javascript] view plaincopy
    1. $('body').bind('keypress',getKeyCode);   
    2. function getKeyCode(e) {  
    3.     var evt = e || window.event;  
    4.     var keyCode = evt.keyCode || evt.which || evt.charCode;  
    5.     alert(keyCode);  
    6. }  

    稍微解释下

    1. e为Firefox等标准浏览器支持的JS隐藏变量,表示一个“事件”;IE系列中没有“e”,而是用window.event来表示“事件”;所以var e = e || window.event;就表示:获取当前正在发生的事件。
    2. e.keyCode、e.which、e.charCode都代表获取按键码,但不同的浏览器支持不同的写法


    获取虚键

    [javascript] view plaincopy
    1. function getKeyCode(e) {  
    2.     var evt = e || window.event;  
    3.     if (evt.ctrlKey) alert("ctrlKey pressed");  
    4.     if (evt.altKey) alert("altKey pressed");  
    5.     if (evt.shiftKey) alert("shiftKey pressed");  
    6. }  

    字母和数字键的键码值(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            


  • 相关阅读:
    Linux每日一题——(2)vi文本编辑器
    Oracle每日一题——(1) 启动/停止监听
    Linux每日一题——(1)创建和删除用户
    Oracle实践:00600[4193]错误导致服务频繁宕掉问题
    在AX中生成二维码
    AX向在线用户发送消息
    TimeNow()获取时间与当前时间不符
    Changecompany中使用Box,Info等客户端方法后出错
    AX4.0删除引用
    poj1010解题报告
  • 原文地址:https://www.cnblogs.com/y0umer/p/3838887.html
Copyright © 2020-2023  润新知