判斷方法:
表 3. DHTML 鍵盤事件 |
名稱 |
說明 |
onkeypress |
這個事件在使用者按下並放開任何字母數字鍵時發生。系統按鈕(例如,方向鍵和功能鍵)無法得到識別。 |
onkeyup |
這個事件在使用者放開任何先前按下的鍵盤鍵時發生。 |
onkeydown |
這個事件在使用者按下任何鍵盤鍵(包括系統按鈕,如方向鍵和功能鍵)時發生。 |
樣本:
function document.onkeydown()
{
if ( event.keyCode=='39' ) //->右箭頭
{
window.open("http://www.163.com");
}
}
function document.onkeypress()
{
if ( event.keyCode=='43' )
{
alert( '你輸入了鍵盤的 “ + ” 鍵');
}
}
在使用JavaScript做WEB鍵盤事件偵聽捕獲時,主要採用onkeypress、onkeydown、onkeyup三個事件進行出來。該三個事件的執行順序如下:onkeydown -> onkeypress ->onkeyup。在一般情況下,採用三種鍵盤事件均可對鍵盤輸入進行有效響應。當在實際使用中,會發現這幾者有些不同的差別。
onkeypress事件不能對系統功能鍵(例如:後退、刪除等,其中對中文IME不能有效響應)進行正常的響應,onkeydown和onkeyup均可以對系統功能鍵進行有效攔截,但事件截獲的位置不同,可以根據具體的情況選擇不同的鍵盤事件。
由於onkeypress不能對系統功能鍵進行捕獲,導致window.event對象的keyCode屬性和onkeydown,onkeyup鍵盤事件中擷取的keyCode屬性不同,主要表現在onkeypress事件的keyCode對字母的大小寫敏感,而onkeydown、onkeyup事件不敏感;onkeypress事件的keyCode無法區分主鍵盤上的數字鍵和付鍵盤數字鍵的,而onkeydown、onkeyup的keyCode對主付鍵盤的數字鍵敏感。
http://liu2liu2.spaces.live.com/blog/cns!54B12917375EF5A0!270.entry
屏蔽按鍵組合ctrl+N
<script
language=javascript>
function KeyDown(){
if ((window.event.altKey)&&
((window.event.keyCode==37)|| //屏蔽 Alt+ 方向鍵 ←
(window.event.keyCode==39))){ //屏蔽 Alt+ 方向鍵 →
alert("不準你使用ALT+方向鍵前進或後退網頁!");
event.returnValue=false;
}
if ((event.keyCode==8)|| //屏蔽退格刪除鍵
(event.keyCode==116)){ //屏蔽 F5 重新整理鍵
event.keyCode=0;
event.returnValue=false;
}
if ((event.ctrlKey)&&(event.keyCode==78)){ //屏蔽 Ctrl+n
event.returnValue=false;
}
if ((event.shiftKey)&&(event.keyCode==121)){ //屏蔽 shift+F10
event.returnValue=false;
}
if (event.keyCode==122){ //屏蔽 F11
event.returnValue=false;
}
}
ASCII碼 |
鍵盤 |
ASCII 碼 |
鍵盤 |
ASCII 碼 |
鍵盤 |
ASCII 碼 |
鍵盤 |
27 |
ESC |
32 |
SPACE |
33 |
! |
34 |
" |
35 |
# |
36 |
$ |
37 |
% |
38 |
& |
39 |
' |
40 |
( |
41 |
) |
42 |
* |
43 |
+ |
44 |
' |
45 |
- |
46 |
. |
47 |
/ |
48 |
0 |
49 |
1 |
50 |
2 |
51 |
3 |
52 |
4 |
53 |
5 |
54 |
6 |
55 |
7 |
56 |
8 |
57 |
9 |
58 |
: |
59 |
; |
60 |
< |
61 |
= |
62 |
> |
63 |
? |
64 |
@ |
65 |
A |
66 |
B |
67 |
C |
68 |
D |
69 |
E |
70 |
F |
71 |
G |
72 |
H |
73 |
I |
74 |
J |
75 |
K |
76 |
L |
77 |
M |
78 |
N |
79 |
O |
80 |
P |
81 |
Q |
82 |
R |
83 |
S |
84 |
T |
85 |
U |
86 |
V |
87 |
W |
88 |
X |
89 |
Y |
90 |
Z |
91 |
[ |
92 |
\ |
93 |
] |
94 |
^ |
95 |
_ |
96 |
` |
97 |
a |
98 |
b |
99 |
c |
100 |
d |
101 |
e |
102 |
f |
103 |
g |
104 |
h |
105 |
i |
106 |
j |
107 |
k |
108 |
l |
109 |
m |
110 |
n |
111 |
o |
112 |
p |
113 |
q |
114 |
r |
115 |
s |
116 |
t |
117 |
u |
118 |
v |
119 |
w |
120 |
x |
121 |
y |
122 |
z |
123 |
{ |
124 |
| |
125 |
} |
126 |
~ |
|
鍵盤數字對應的ASCII碼(keycode碼)
2011-01-29 14:46
keycode 1 = 滑鼠左鍵 keycode 2 = 滑鼠右鍵 keycode 3 = Cancel keycode 4 = 滑鼠中鍵 keycode 8 = BackSpace keycode 9 = Tab keycode 12 = Clear(未知) keycode 13 = Enter keycode 16 = Shift_L keycode 17 = Control_L keycode 18 = Alt_L keycode 19 = Pause keycode 20 = Caps_Lock keycode 27 = Escape keycode 32 = space keycode 33 = Prior(PageUp鍵) keycode 34 = Next(PageDown鍵) keycode 35 = End keycode 36 = Home keycode 37 = Left keycode 38 = Up keycode 39 = Right keycode 40 = Down keycode 41 = Select(未知) keycode 42 = Print(PrintScreen鍵) keycode 43 = Execute(未知) keycode 45 = Insert keycode 46 = Delete keycode 47 = Help(未知) keycode 48 = 0 equal braceright keycode 49 = 1 exclam onesuperior keycode 50 = 2 quotedbl twosuperior keycode 51 = 3 section threesuperior keycode 52 = 4 dollar keycode 53 = 5 percent keycode 54 = 6 ampersand keycode 55 = 7 slash braceleft keycode 56 = 8 parenleft bracketleft keycode 57 = 9 parenright bracketright keycode 65 = a A keycode 66 = b B keycode 67 = c C keycode 68 = d D keycode 69 = e E EuroSign keycode 70 = f F keycode 71 = g G keycode 72 = h H keycode 73 = i I keycode 74 = j J keycode 75 = k K keycode 76 = l L keycode 77 = m M mu keycode 78 = n N keycode 79 = o O keycode 80 = p P keycode 81 = q Q at keycode 82 = r R keycode 83 = s S keycode 84 = t T keycode 85 = u U keycode 86 = v V keycode 87 = w W keycode 88 = x X keycode 89 = y Y keycode 90 = z Z keycode 96 = KP_0 KP_0(小鍵盤數字0) keycode 97 = KP_1 KP_1(小鍵盤數字1) keycode 98 = KP_2 KP_2(小鍵盤數字2) keycode 99 = KP_3 KP_3(小鍵盤數字3) keycode 100 = KP_4 KP_4(小鍵盤數字4) keycode 101 = KP_5 KP_5(小鍵盤數字5) keycode 102 = KP_6 KP_6(小鍵盤數字6) keycode 103 = KP_7 KP_7(小鍵盤數字7) keycode 104 = KP_8 KP_8(小鍵盤數字8) keycode 105 = KP_9 KP_9(小鍵盤數字9) keycode 106 = KP_Multiply KP_Multiply(小鍵盤乘) keycode 107 = KP_Add KP_Add(小鍵盤加) keycode 108 = KP_Separator KP_Separator(小鍵盤迴車鍵) keycode 109 = KP_Subtract KP_Subtract(小鍵盤減) keycode 110 = KP_Decimal KP_Decimal(小鍵盤小數點) keycode 111 = KP_Divide KP_Divide(小鍵盤除) keycode 112 = F1 keycode 113 = F2 keycode 114 = F3 keycode 115 = F4 keycode 116 = F5 keycode 117 = F6 keycode 118 = F7 keycode 119 = F8 keycode 120 = F9 keycode 121 = F10 keycode 122 = F11 keycode 123 = F12 keycode 124 = F13 keycode 125 = F14 keycode 126 = F15 keycode 127 = F16 keycode 128 = F17 keycode 129 = F18 keycode 130 = F19 keycode 131 = F20 keycode 132 = F21 keycode 133 = F22 keycode 134 = F23 keycode 135 = F24 keycode 136 = Num_Lock keycode 137 = Scroll_Lock(未知) keycode 187 = acute grave(未知) keycode 188 = comma semicolon(未知)(逗號 分號) keycode 189 = minus underscore (減號 底線) keycode 190 = period colon (未知 冒號) keycode 192 = numbersign apostrophe(未知 單引號) keycode 210 = plusminus hyphen macron (未知 & ^) keycode 211 = keycode 212 = copyright registered(未知) keycode 213 = guillemotleft guillemotright(未知) keycode 214 = masculine ordfeminine(未知) keycode 215 = ae AE(未知) keycode 216 = cent yen(未知) keycode 217 = questiondown exclamdown(未知) keycode 218 = onequarter onehalf threequarters(未知) keycode 220 = less greater bar(小於符號 大於符號 未知) keycode 221 = plus asterisk asciitilde(加號 星號 未知) keycode 227 = multiply division(乘 除) keycode 228 = acircumflex Acircumflex(未知) keycode 229 = ecircumflex Ecircumflex(未知) keycode 230 = icircumflex Icircumflex(未知) keycode 231 = ocircumflex Ocircumflex(未知) keycode 232 = ucircumflex Ucircumflex(未知) keycode 233 = ntilde Ntilde(未知) keycode 234 = yacute Yacute(未知) keycode 235 = oslash Ooblique(未知) keycode 236 = aring Aring(未知) keycode 237 = ccedilla Ccedilla(未知) keycode 238 = thorn THORN(未知) keycode 239 = eth ETH(未知) keycode 240 = diaeresis cedilla currency(未知) keycode 241 = agrave Agrave atilde Atilde(未知) keycode 242 = egrave Egrave(未知) keycode 243 = igrave Igrave(未知) keycode 244 = ograve Ograve otilde Otilde(未知) keycode 245 = ugrave Ugrave(未知) keycode 246 = adiaeresis Adiaeresis(未知) keycode 247 = ediaeresis Ediaeresis(未知) keycode 248 = idiaeresis Idiaeresis(未知) keycode 249 = odiaeresis Odiaeresis(未知) keycode 250 = udiaeresis Udiaeresis(未知) keycode 251 = ssharp question backslash(未知) keycode 252 = asciicircum degree(未知) keycode 253 = 3 sterling(未知) keycode 254 = Mode_switch(未知) 如果要使用按鍵組合,則可以利用event.ctrlKey,event.shiftKey,event .altKey值為true或false,判斷是否按下了ctrl鍵、shift鍵以及alt鍵。 例:event.ctrlKey=true && event.keycode=65 |