which 事件属性 keyCode 事件属性 metaKey 事件属性 which 事件属性 实例 获取按下的键盘按键Unicode值: var x = event.which; x 输出结果为: 119 // 119 是字符 "w" 试一试 » 本文底部包含了更多实例。 定义和使用 which 属性返回 onkeypress 事件触发的键的值的字符代码,或者onkeydown 或 onkeyup 事件的键的代码。 两种代码类型的区别是: 字符代码 - 表示 ASCII 字符的数字 键盘代码 - 表示键盘上真实键的数字 两种类型的值不是都相等的,例如小写字符 "w" 和大写字符 "W" 有相同的键盘代码,因为他们他们键盘上 ( "W" 代码为"87"),但是它们有不同的字符代码,两个字符输出是不一样的( "w" 和 "W" 字符代码为 "119" 和 "87") - 查看以下实例可以更好的理解。 提示: 如果需要知道用户按下的是打印键 (如 "a" 或 "5"),建议使用 onkeypress 事件。如果需要知道用户按下的是功能键(如"F1", "CAPS LOCK" 或 "Home") 可使用 onkeydown 或 onkeyup 事件。 注意: IE8 及其更早版本不支持 which 属性。不支持的浏览器可使用 keyCode 属性。但是, keyCode 属性在 Firefox 浏览器的 onkeypress 事件中是无效的。 兼容这些浏览器你可以使用以下代码: var x = event.which || event.keyCode; // 使用 **which** 或 **keyCode** 这样可支持不同浏览器 提示: 所有 Unicode 字符列表可查看我们的 完整 Unicode 参考手册。 提示: 如果你需要将 Unicode 值转换为字符,可以使用 fromCharCode()方法。 注意: 该属性是只读的。 注意: which 和 keyCode 属性提供了解决浏览器的兼容性的方法,最新版本的 DOM 事件推荐使用 key 属性来替代该方法。 提示: 如果你想查看是否按下了 "ALT", "CTRL", "META" 或 "SHIFT" 键,可使用 altKey, ctrlKey, metaKey 或 shiftKey 属性。 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号。 方法 which Yes 9.0 Yes Yes Yes 语法 _event_.which 技术细节 返回值: 数字,表示 Unicode 字符代码或 Unicode 键代码 DOM 版本: DOM Level 2 Events 更多实例 实例 使用 onkeypress 和 onkeydown 来演示字符代码与键盘代码的区别: <input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> function uniCharCode(event) { var char = event.which || event.keyCode; // event.keyCode 用于 IE8 及更早版本 document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " \+ char; } function uniKeyCode(event) { var key = event.which || event.keyCode; // event.keyCode 用于 IE8 及更早版本 document.getElementById("demo2").innerHTML = "Unicode KEY code: " \+ key; } 当在键盘上按下 "a" 键 (不使用大写锁定), 输出结果如下: Unicode 字符代码: 97 Unicode 键盘代码: 65 试一试 » 实例 如果按下 Esc 键弹出提示信息: <input type="text" onkeydown="myFunction(event)"> function myFunction(event) { var x = event.which || event.keyCode; // event.keyCode 用于 IE8 及更早版本 if (x == 27) { // 27 是 ESC 键 alert ("You pressed the Escape key!"); } } 试一试 » 实例 将 Unicode 值转换为字符 (不能用于功能键): var x = event.which || event.keyCode; //获取 Unicode 值 var y = String.fromCharCode(x); // 将值转换为字符 试一试 » keyCode 事件属性 metaKey 事件属性