keyCode對照表及JS監聽組合按鍵
keyCode對照表
1、 字母和數字鍵的鍵碼值(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 | 89 | 8 | 56 |
I | 73 | R | 82 | 0 | 48 | 9 | 57 |
2、數字鍵盤上的鍵的鍵碼值
按鍵 | 鍵碼 | 按鍵 | 鍵碼 |
---|---|---|---|
0 | 96 | 8 | 104 |
1 | 97 | 9 | 105 |
2 | 98 | * | 106 |
3 | 99 | + | 107 |
4 | 100 | Enter | 108 |
5 | 101 | - | 109 |
6 | 102 | . | 110 |
7 | 103 | / | 111 |
3、功能鍵的鍵碼值
按鍵 | 鍵碼 | 按鍵 | 鍵碼 |
---|---|---|---|
F1 | 112 | F7 | 118 |
F2 | 113 | F8 | 119 |
F3 | 114 | F9 | 120 |
F4 | 115 | F10 | 121 |
F5 | 116 | F11 | 122 |
F6 | 117 | F12 | 123 |
4.、控制鍵的鍵碼值(keyCode)
按鍵 | 鍵碼 | 按鍵 | 鍵碼 | 按鍵 | 鍵碼 | 按鍵 | 鍵碼 |
---|---|---|---|---|---|---|---|
BackSpace | 8 | Esc | 27 | Right Arrow | 39 | -_ | 189 |
Tab | 9 | Spacebar | 32 | Down 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 |
5、多媒體鍵的鍵碼值(keyCode)
按鍵 | 鍵碼 |
---|---|
音量加 | 175 |
音量減 | 174 |
停止 | 179 |
靜音 | 193 |
瀏覽器 | 172 |
郵件 | 180 |
搜尋 | 170 |
收藏 | 171 |
onkeyup的缺陷處理
場景說明:在html的input框中限制指定內容輸入,例如只允許輸入數字(其他情況都是正規表示式變化)。方法很多,以如下程式碼為例:
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<input type="text" onkeyup='this.value=this.value.replace(/[^\w_]/g,"");'/>
</body>
程式碼缺陷:上邊程式碼中,input框只能輸入數字(本文想闡述的不是這個),但是該方法有個缺陷,當使用者輸入數字後想修改時,鍵盤的←鍵無法使游標向左移動,即便滑鼠點選,使游標到指定位置,在按下鍵盤任意鍵修改時,游標還是會跑到最右端。
解決方案及原理:onkeyup中程式碼是鍵盤每一次按下放開之後將input框中的value按照正則處理,不符合正則的替換成“”,也就是去掉,具體可以檢視js的replace函式。那麼上述程式碼缺陷就可以從keyCode入手。程式碼如下
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<input type="text" onkeyup='if(event.keyCode!=8 && event.keyCode!=37 && event.keyCode!=16 && event.keyCode!=20 && event.keyCode!=39 && (event.keyCode<48 || event.keyCode>105) && (!event.shiftKey && event.keyCode != 189))this.value=this.value.replace(/[^\w_]/g,"");'/>
</body>
程式碼說明:上邊event.keyCode後邊的數字代表的是鍵盤對應的按鍵,可以檢視上邊的keyCode對照表。上邊程式碼中是按下鍵盤上數字按鍵,Backspace按鍵,←,→按鍵時,不作正則處理,從而避免了第一段程式碼的問題。
JS監聽組合按鍵
組合按鍵一般分以下兩種:
兩位組合建,如:ctrl(cmd)+ 其他按鍵,alt+其他按鍵,shift+其他按鍵
三位組合鍵,如:ctrl(cmd)+ shift + 其他按鍵,Ctrl(cmd)+ alt + 其他按鍵
在組合鍵中,js的event中有以下幾種屬性:ctrlKey(metaKey)、altKey、shiftKey
以下以按下Shift+1組合鍵為例(其他的類似):
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<input type="text" onkeyup="test()"/>
</body>
<script>
function test(){
if(event.shiftKey && event.keyCode == 49){
alert(1);
}
}
</script>
程式碼說明:執行上述程式碼後,按下組合鍵Shift+1在input框中輸出!同時,會alert出1。但是個人在測試過程中有個疑問,就是組合鍵的Shift+其他按鍵,js如何區分中英文的。
擴充 shortcuts
shortcuts.js可以在網頁中增加組合按鍵,使組合按鍵更豐富。
具體使用方法,及更多資訊,可以在下面下載連結中下載之後,嘗試下。
點我,shortcuts.js下載地址
相關文章
- 【JavaScript】鍵盤按鍵Keycode對照表(鍵碼對照表)JavaScript
- Keycode對照表
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- JS監聽手機物理返回鍵(及IOS微信端的bug)JSiOS
- QT實現組合鍵監測QT
- js 監聽事件JS事件
- 監聽鍵盤事件事件
- Android Home鍵、鎖屏鍵監聽Android
- python pynput監聽鍵盤Python
- flutter中監聽鍵盤Flutter
- 51微控制器程式框架之組合按鍵框架
- android 7.1 遮蔽按壓兩次電源鍵(KEYCODE_POWER)開啟相機Android
- java鍵盤監聽之視窗監聽的實現Java
- ASCII對照表ASCII
- 常用埠對照表
- 安卓使用物理鍵監聽器安卓
- android PopupWindow監聽返回鍵無效Android
- js如何監聽頁面縮放?JS
- Androidx為Fragment中的按鈕設定監聽AndroidFragment
- Vue入門指南-04 事件機制和事件/按鍵修飾符和過濾器及監聽屬性(快速上手vue)Vue事件過濾器
- Echarts 監聽滑鼠右鍵或者雙擊Echarts
- web app 中物理返回鍵的監聽WebAPP
- Matplotlib顏色對照表
- Python術語對照表Python
- js 監聽事件的疊加和移除JS事件
- node.js監聽檔案變化Node.js
- JS怎麼監聽div元素的resizeJS
- js監聽手機橫豎屏事件JS事件
- 【JS】在連續性監聽事件中,監聽當前狀態是否變化JS事件
- vue的監聽鍵盤事件的快捷方法Vue事件
- Android監聽軟鍵盤收起與彈出Android
- 監聽 watch props物件屬性監聽 或深度監聽物件
- Robotgo v0.80.0 釋出了, Go 跨平臺 GUI 自動化. 增加非同步事件和多組合鍵監聽 hook 支援OTGGoGUI非同步事件Hook
- Spring 事件監聽機制及原理分析Spring事件
- UWP 響應鍵盤組合快捷鍵
- MySQL按指定字元合並及拆分MySql字元
- 51微控制器程式框架之帶順序的組合按鍵觸發框架
- JS判斷鍵盤是否按的Enter鍵並觸發指定按鈕點選操作JS
- H5頁面監聽Android物理返回鍵H5Android