HOME 各ブラウザでキーコードを取得してみた [JavaScript, 開発日記]
表中のセルの色は値に応じて変えている。
何も数値が書かれていない欄は何も値がなかった、もしくは取得できなかったことを示す。
キーコードの取得は以下の関数で行った。
function keyCode(e){
    if(document.all)
        return e.keyCode;
    else if(document.getElementById)
        return (e.keyCode)? e.keyCode: e.charCode;
    else if(document.layers)
        return e.which;
}
ファンクションキーなど何かのショートカットキーに割り当てられ、うまくキーコードが拾えないキーは、可能ならばそのイベントをキャンセルしてキーコードを取得している。
データの取得は全てWindowsXP上、JP106キーボードで行っている。
IE7 Standaloneでも試してみたが、結果はIE6と同じだったので省略。
キー IE6 Firefox2 Opera9.25 Opera9.50b Safari3
DownPressUp DownPressUp DownPressUp DownPressUp DownPressUp
0 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48
(Shift+0) 48 48 48 48 48 48 48 48 48 0 48
1 49 49 49 49 49 49 49 49 49 49 49 49 49 49 49
! (Shift+1) 49 33 49 49 33 49 49 33 49 49 33 49 49 33 49
2 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
" (Shift+2) 50 34 50 50 34 50 50 34 50 50 34 50 50 34 50
3 51 51 51 51 51 51 51 51 51 51 51 51 51 51 51
# (Shift+3) 51 35 51 51 35 51 51 35 51 51 35 51 51 35 51
4 52 52 52 52 52 52 52 52 52 52 52 52 52 52 52
$ (Shift+4) 52 36 52 52 36 52 52 36 52 52 36 52 52 36 52
5 53 53 53 53 53 53 53 53 53 53 53 53 53 53 53
% (Shift+5) 53 37 53 53 37 53 53 37 53 53 37 53 53 37 53
6 54 54 54 54 54 54 54 54 54 54 54 54 54 54 54
& (Shift+6) 54 38 54 54 38 54 54 38 54 54 38 54 54 38 54
7 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
' (Shift+7) 55 39 55 55 39 55 55 39 55 55 39 55 55 39 55
8 56 56 56 56 56 56 56 56 56 56 56 56 56 56 56
( (Shift+8) 56 40 56 56 40 56 56 40 56 56 40 56 56 40 56
9 57 57 57 57 57 57 57 57 57 57 57 57 57 57 57
) (Shift+9) 57 41 57 57 41 57 57 41 57 57 41 57 57 41 57
a 65 97 65 65 97 65 65 97 65 65 97 65 65 97 65
A (Shift+a) 65 65 65 65 65 65 65 65 65 65 65 65 65 65 65
b 66 98 66 66 98 66 66 98 66 66 98 66 66 98 66
B (Shift+b) 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
c 67 99 67 67 99 67 67 99 67 67 99 67 67 99 67
C (Shift+c) 67 67 67 67 67 67 67 67 67 67 67 67 67 67 67
d 68 100 68 68 100 68 68 100 68 68 100 68 68 100 68
D (Shift+d) 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68
e 69 101 69 69 101 69 69 101 69 69 101 69 69 101 69
E (Shift+e) 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69
f 70 102 70 70 102 70 70 102 70 70 102 70 70 102 70
F (Shift+f) 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70
g 71 103 71 71 103 71 71 103 71 71 103 71 71 103 71
G (Shift+g) 71 71 71 71 71 71 71 71 71 71 71 71 71 71 71
h 72 104 72 72 104 72 72 104 72 72 104 72 72 104 72
H (Shift+h) 72 72 72 72 72 72 72 72 72 72 72 72 72 72 72
i 73 105 73 73 105 73 73 105 73 73 105 73 73 105 73
I (Shift+i) 73 73 73 73 73 73 73 73 73 73 73 73 73 73 73
j 74 106 74 74 106 74 74 106 74 74 106 74 74 106 74
J (Shift+j) 74 74 74 74 74 74 74 74 74 74 74 74 74 74 74
k 75 107 75 75 107 75 75 107 75 75 107 75 75 107 75
K (Shift+k) 75 75 75 75 75 75 75 75 75 75 75 75 75 75 75
l 76 108 76 76 108 76 76 108 76 76 108 76 76 108 76
L (Shift+l) 76 76 76 76 76 76 76 76 76 76 76 76 76 76 76
m 77 109 77 77 109 77 77 109 77 77 109 77 77 109 77
M (Shift+m) 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77
n 78 110 78 78 110 78 78 110 78 78 110 78 78 110 78
N (Shift+n) 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
o 79 111 79 79 111 79 79 111 79 79 111 79 79 111 79
O (Shift+o) 79 79 79 79 79 79 79 79 79 79 79 79 79 79 79
p 80 112 80 80 112 80 80 112 80 80 112 80 80 112 80
P (Shift+p) 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80
q 81 113 81 81 113 81 81 113 81 81 113 81 81 113 81
Q (Shift+q) 81 81 81 81 81 81 81 81 81 81 81 81 81 81 81
r 82 114 82 82 114 82 82 114 82 82 114 82 82 114 82
R (Shift+r) 82 82 82 82 82 82 82 82 82 82 82 82 82 82 82
s 83 115 83 83 115 83 83 115 83 83 115 83 83 115 83
S (Shift+s) 83 83 83 83 83 83 83 83 83 83 83 83 83 83 83
t 84 116 84 84 116 84 84 116 84 84 116 84 84 116 84
T (Shift+t) 84 84 84 84 84 84 84 84 84 84 84 84 84 84 84
u 85 117 85 85 117 85 85 117 85 85 117 85 85 117 85
U (Shift+u) 85 85 85 85 85 85 85 85 85 85 85 85 85 85 85
v 86 118 86 86 118 86 86 118 86 86 118 86 86 118 86
V (Shift+v) 86 86 86 86 86 86 86 86 86 86 86 86 86 86 86
w 87 119 87 87 119 87 87 119 87 87 119 87 87 119 87
W (Shift+w) 87 87 87 87 87 87 87 87 87 87 87 87 87 87 87
x 88 120 88 88 120 88 88 120 88 88 120 88 88 120 88
X (Shift+x) 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88
y 89 121 89 89 121 89 89 121 89 89 121 89 89 121 89
Y (Shift+y) 89 89 89 89 89 89 89 89 89 89 89 89 89 89 89
z 90 122 90 90 122 90 90 122 90 90 122 90 90 122 90
Z (Shift+z) 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
- 189 45 189 109 45 109 45 45 45 109 45 109 189 45 189
= (Shift+-) 189 61 189 109 61 109 45 61 45 109 61 109 189 61 189
^ 222 94 222 222 94 222 94 94 94 94 94 94 222 94 222
~ (Shift+^) 222 126 222 222 126 222 94 126 94 94 126 94 222 126 222
\ 220 92 220 220 92 220 92 92 92 220 92 220 220 92 220
| (Shift+\) 220 124 220 220 124 220 92 124 92 220 124 220 220 124 220
@ 192 64 192 192 64 192 64 64 64 64 64 64 192 64 192
` (Shift+@) 192 96 192 192 96 192 64 96 64 64 96 64 192 96 192
[ 219 91 219 219 91 219 91 91 91 219 91 219 219 91 219
{ (Shift+[) 219 123 219 219 123 219 91 123 91 219 123 219 219 123 219
; 187 59 187 61 59 61 59 59 59 59 59 59 187 59 187
+ (Shift+;) 187 43 187 61 43 61 59 43 59 59 43 59 187 43 187
: 186 58 186 59 58 59 58 58 58 59 58 59 186 58 186
* (Shift+:) 186 42 186 59 42 59 58 42 58 59 42 59 186 42 186
] 221 93 221 221 93 221 93 93 93 221 93 221 221 93 221
} (Shift+]) 221 125 221 221 125 221 93 125 93 221 125 221 221 125 221
, 188 44 188 188 44 188 44 44 44 188 44 188 188 44 188
< (Shift+,) 188 60 188 188 60 188 44 60 44 188 60 188 188 60 188
. 190 46 190 190 46 190 46 46 46 190 46 190 190 46 190
> (Shift+.) 190 62 190 190 62 190 46 62 46 190 62 190 190 62 190
/ 191 47 191 191 47 191 47 47 47 191 47 191 191 47 191
? (Shift+/) 191 63 191 191 63 191 47 63 47 191 63 191 191 63 191
\ 226 92 226 226 92 226 92 92 92 220 92 220 226 92 226
_ (Shift+\ ) 226 95 226 226 95 226 92 95 92 220 95 220 226 95 226
Esc 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27
F1 112 112 112 112 112 112 112 112 112 112
F2 113 113 113 113 113 113 113 113 113 113 113 113 0 113
F3 114 114 114 114 114 114 114 114 114 114 114 114
F4 115 115 115 115 115 115 115 115 115 115 115 115 0 115
F5 116 116 116 116 116 116 116 116 116 116 116 116
F6 117 117 117 117 117 117 117 117 117 117 117 117
F7 118 118 118 118 118 118 118 118 118 118 118 118 0 118
F8 119 119 119 119 119 119 119 119 119 119 119 119 0 119
F9 120 120 120 120 120 120 120 120 120 120 120 120 0 120
F10 121 121 121 121 121 121 121 121 121 121 121 121 0 121
F11 122 122 122 122 122 122 122 122 122 122 122 122 0 122
F12 123 123 123 123 123 123 123 123 123 123 123 123 0 123
Print Screen 44 44
Scroll Lock 145 145 145 145 145 145 145 145 145 145 145 145 0 145
Pause Break 19 19 19 19 19 19 19 19 19 19 19 19 0 19
Insert 45 45 45 45 45 45 45 45 45 45 45 45 0 45
Home 36 36 36 36 36 36 36 36 36 36 36 36 0 36
Page Up 33 33 33 33 33 33 33 33 33 33 33 33 0 33
Delete 46 46 46 46 46 46 46 46 46 46 46 46 0 46
End 35 35 35 35 35 35 35 35 35 35 35 35 0 35
Page Down 34 34 34 34 34 34 34 34 34 34 34 34 0 34
37 37 37 37 37 37 37 37 37 37 37 37 0 37
38 38 38 38 38 38 38 38 38 38 38 38 0 38
39 39 39 39 39 39 39 39 39 39 39 39 0 39
40 40 40 40 40 40 40 40 40 40 40 40 0 40
Tab 9 9 9 9 9 9 9 9 9 9 9 9 9 9
Caps Lock 240 240 240 240 208 208 240 0
Shift+Caps Lock 20 20 20 20 20 20 20 20
Shift 16 16 16 16 16 16 16 16 16 16
Ctrl 17 17 17 17 17 17 17 17 17 17
左Windowsキー 91 91 91 91 91 91 91 219 219 91 0 91
Alt 18 18 18 18 18 18 18 18
(スペースキー) 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32
右Windowsキー 92 92 92 92 92 92 92 220 220 92 0 92
Enter 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
BackSpace 8 8 8 8 8 8 8 8 8 8 8 8 8 8
0 (テンキー NumLock) 96 48 96 96 48 96 48 48 48 48 48 48 96 48 96
1 (テンキー NumLock) 97 49 97 97 49 97 49 49 49 49 49 49 97 49 97
2 (テンキー NumLock) 98 50 98 98 50 98 50 50 50 50 50 50 98 50 98
3 (テンキー NumLock) 99 51 99 99 51 99 51 51 51 51 51 51 99 51 99
4 (テンキー NumLock) 100 52 100 100 52 100 52 52 52 52 52 52 100 52 100
5 (テンキー NumLock) 101 53 101 101 53 101 53 53 53 53 53 53 101 53 101
6 (テンキー NumLock) 102 54 102 102 54 102 54 54 54 54 54 54 102 54 102
7 (テンキー NumLock) 103 55 103 103 55 103 55 55 55 55 55 55 103 55 103
8 (テンキー NumLock) 104 56 104 104 56 104 56 56 56 56 56 56 104 56 104
9 (テンキー NumLock) 105 57 105 105 57 105 57 57 57 57 57 57 105 57 105
. (テンキー NumLock) 110 46 110 110 46 110 78 46 78 78 46 78 110 46 110
Num Lock 144 144 144 144 144 144 144 144 144 144 144 0 144
/ (テンキー) 111 47 111 111 47 111 111 47 111 111 47 111 111 47 111
* (テンキー) 106 42 106 106 42 106 106 42 106 106 42 106 106 42 106
- (テンキー) 109 45 109 109 45 109 109 45 109 109 45 109 109 45 109
+ (テンキー) 107 43 107 107 43 107 107 43 107 107 43 107 107 43 107
(テンキー 改行) 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
Ins (テンキー 0) 45 45 45 45 45 45 45 45 45 45 45 45 0 45
Del (テンキー .) 46 46 46 46 46 46 46 46 46 46 46 46 0 46
End (テンキー 1) 35 35 35 35 35 35 35 35 35 35 35 35 0 35
↓ (テンキー 2) 40 40 40 40 40 40 40 40 40 40 40 40 0 40
Page Down (テンキー 3) 34 34 34 34 34 34 34 34 34 34 34 34 0 34
← (テンキー 4) 37 37 37 37 37 37 37 37 37 37 37 37 0 37
(テンキー 5) 12 12 12 12 12 12 12 12 12 12 0 12
→ (テンキー 6) 39 39 39 39 39 39 39 39 39 39 39 39 0 39
Home (テンキー 7) 36 36 36 36 36 36 36 36 36 36 36 36 0 36
↑ (テンキー 8) 38 38 38 38 38 38 38 38 38 38 38 38 0 38
Page Up (テンキー 9) 33 33 33 33 33 33 33 33 33 33 33 33 0 33
※「半角/全角」キーや「カタカナ ひらがな」キーなどのIMEモードが関わるキーは返される値が変化したり、値を取得できなかったりとよくわからない挙動をするので省略。
※左右のAltやCtrlは区別されない
※Caps LockがOnの状態はShiftを押しながら押した場合と同じ。Onの状態でShiftを押しながら押すと、Offの状態でShiftを押さずに押す場合と同じになる。