JavaScript 键盘事件与键码详解

0 下载量 108 浏览量 更新于2024-08-30 收藏 53KB PDF 举报
"这篇资源主要介绍了JavaScript中检测键盘按键信息的方法,包括keydown、keypress和keyup三个事件句柄,以及按键的分类、按键码和字符码的概念,并提供了获取实键和虚键键码的示例代码。" 在JavaScript中,与键盘交互是常见的用户输入处理方式。有三种主要的事件句柄专门用于处理键盘输入状态: 1. **keydown事件**:当用户按下键盘上的一个键时触发,即使该键尚未释放,这个事件就会发生。 2. **keypress事件**:通常发生在keydown事件之后,当用户按下并释放一个键时触发,主要用于处理可打印字符的输入。 3. **keyup事件**:当用户释放之前按下的键时触发,标志着按键动作的结束。 按键可以分为两类: - **实键(Printable Keys)**:这些是键盘上可以直接看到并能打印出字符的键,如字母、数字、符号等。 - **虚键(Non-Printable Keys)**:这些键不直接打印字符,但用于控制和导航,如Ctrl、Alt、Shift和方向键等。在Internet Explorer中,虚键不会触发keypress事件,需要通过keydown或keyup事件来捕获。 在JavaScript中,每个按键都有一个对应的**按键码(KeyCode)**,它是计算机识别不同按键的唯一标识。此外,对于实键,还有一个**字符码(CharCode)**,它代表了按键上显示的实际字符。可以通过`String.fromCharCode()`函数将按键码转换为对应的字符码。 下面是一段示例代码,展示了如何获取按键码: ```javascript function getKeyCode(e) { var keyCode = 0; var e = e || window.event; keyCode = e.keyCode || e.which || e.charCode; alert(keyCode); } ``` 这段代码尝试捕获当前事件的按键码,无论使用的是Firefox等标准浏览器支持的`e`,还是IE中的`window.event`。 对于虚键的检测,例如Ctrl、Alt和Shift键,可以使用相应的属性来检查它们是否被按下: ```javascript function getKeyCode(e) { var keyCode = 0; var e = e || window.event; if (e.ctrlKey) alert("Ctrl key pressed"); if (e.altKey) alert("Alt key pressed"); if (e.shiftKey) alert("Shift key pressed"); } ``` 这段代码会根据用户是否按下了Ctrl、Alt或Shift键显示相应的警告。 此外,文章还提供了一些常见字母和数字的键码值,例如: - A - 65 - B - 66 - C - 67 - ... - J - 74 - K - 75 - L - 76 - ... - 1 - 49 - 2 - 50 - 3 - 51 这些键码值对于开发人员来说非常有用,因为他们可以帮助编写响应特定键盘输入的代码。理解这些事件和键码对于创建交互式网页和富客户端应用至关重要。