javascript之键盘事件

本文深入解析了键盘事件的处理机制,包括keydown、keypress和keyup事件的使用方法,并提供了兼容不同浏览器环境的代码实现。详细介绍了如何获取按键码及对应字符,以及在文本框和body标记中的键码差异。

原文地址:http://blog.youkuaiyun.com/u012152619/article/details/41819433


键盘事件包含onkeydownonkeypressonkeyup这三个事件

事件初始化

[javascript]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. function keyDown(){}   
  2.   
  3.     document.onkeydown = keyDown;   
  4.   
  5.     //论按下键盘上的哪个键,都将调用KeyDown()函数。  

DOM标准下

[javascript]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. function keyDown(e) {   
  2.   
  3.     var keycode = e.which;   //取得对应的键值(数字)  
  4.   
  5.     var realkey = String.fromCharCode(e.which); //取得代表改键的真正字符  
  6.   
  7.     alert("按键码: " + keycode + " 字符: " + realkey);   
  8.   
  9.    }   
  10.   
  11.     document.onkeydown = keyDown  

IE

[javascript]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. function keyDown() {   
  2.   
  3.       var keycode = event.keyCode;   //IE下取得键值的方法  
  4.   
  5.       var realkey = String.fromCharCode(event.keyCode);   
  6.   
  7.       alert("按键码: " + keycode + " 字符: " + realkey);   
  8.   
  9.    }   
  10.   
  11.    document.onkeydown = keyDown  

兼容的方法

[javascript]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. function keyUp(e) {   
  2.   
  3.      var currKey=0,e=e||event;   
  4.   
  5.      currKey=e.keyCode||e.which||e.charCode;   
  6.   
  7.      var keyName = String.fromCharCode(currKey);   
  8.   
  9.      alert("按键码: " + currKey + " 字符: " + keyName);   
  10.   
  11.    }   
  12.   
  13.    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) 功能键键码值(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

Cape Lock           20

Alt         18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值