js判斷鍵盤按鍵

來源:互聯網
上載者:User

判斷方法:

表 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 碼

鍵盤

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.