在JavaScript中,`keyCode` 是一个用于标识键盘按键的属性。虽然现代浏览器已经逐渐弃用 `keyCode`,转而推荐使用 `key` 或 `code` 属性,但在某些场景下,`keyCode` 仍然被广泛使用。以下是一些常见的 `keyCode` 值及其对应的按键:
### 常用 `keyCode` 值及其对应的按键:
- **8**: Backspace
- **9**: Tab
- **12**: Clear
- **13**: Enter
- **16**: Shift
- **17**: Ctrl
- **18**: Alt
- **19**: Pause/Break
- **20**: Caps Lock
- **27**: Escape (Esc)
- **32**: Space
- **33**: Page Up
- **34**: Page Down
- **35**: End
- **36**: Home
- **37**: Left Arrow
- **38**: Up Arrow
- **39**: Right Arrow
- **40**: Down Arrow
- **45**: Insert
- **46**: Delete
- **48**: 0
- **49**: 1
- **50**: 2
- **51**: 3
- **52**: 4
- **53**: 5
- **54**: 6
- **55**: 7
- **56**: 8
- **57**: 9
- **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
- **96**: Numpad 0
- **97**: Numpad 1
- **98**: Numpad 2
- **99**: Numpad 3
- **100**: Numpad 4
- **101**: Numpad 5
- **102**: Numpad 6
- **103**: Numpad 7
- **104**: Numpad 8
- **105**: Numpad 9
- **106**: Numpad Multiply (*)
- **107**: Numpad Add (+)
- **109**: Numpad Subtract (-)
- **110**: Numpad Decimal (.)
- **111**: Numpad Divide (/)
- **112**: F1
- **113**: F2
- **114**: F3
- **115**: F4
- **116**: F5
- **117**: F6
- **118**: F7
- **119**: F8
- **120**: F9
- **121**: F10
- **122**: F11
- **123**: F12
- **144**: Num Lock
- **145**: Scroll Lock
- **186**: Semicolon (;)
- **187**: Equal (=)
- **188**: Comma (,)
- **189**: Minus (-)
- **190**: Period (.)
- **191**: Slash (/)
- **192**: Backtick (`)
- **219**: Open Bracket ([)
- **220**: Backslash (\)
- **221**: Close Bracket (])
- **222**: Single Quote (')
### 示例代码:
- document.addEventListener('keydown', function(event) {
- var keyCode = event.keyCode;
- var keyName = '';
- switch (keyCode) {
- case 8: keyName = 'Backspace'; break;
- case 9: keyName = 'Tab'; break;
- case 13: keyName = 'Enter'; break;
- case 16: keyName = 'Shift'; break;
- case 17: keyName = 'Ctrl'; break;
- case 18: keyName = 'Alt'; break;
- case 27: keyName = 'Escape'; break;
- case 32: keyName = 'Space'; break;
- case 37: keyName = 'Left Arrow'; break;
- case 38: keyName = 'Up Arrow'; break;
- case 39: keyName = 'Right Arrow'; break;
- case 40: keyName = 'Down Arrow'; break;
- case 46: keyName = 'Delete'; break;
- default: keyName = 'Unknown Key'; break;
- }
- console.log('Key Code: ' + keyCode + ', Key Name: ' + keyName);
- });
复制代码
### 注意事项:
1. **`keyCode` 的弃用**:`keyCode` 已经被标记为弃用,建议使用 `event.key` 或 `event.code` 来替代。`event.key` 返回按键的字符串表示,而 `event.code` 返回按键的物理位置。
2. **兼容性**:虽然 `keyCode` 在现代浏览器中仍然可用,但在未来的版本中可能会被完全移除。因此,建议在新项目中使用 `event.key` 或 `event.code`。
### 示例使用 `event.key`:
- document.addEventListener('keydown', function(event) {
- console.log('Key Pressed: ' + event.key);
- });
复制代码
如果你在开发Discuz插件或模板时遇到键盘事件处理的问题,可以参考上述代码进行调试和开发。如果有更复杂的需求,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |