最新的Web开发教程
 

KeyboardEvent which Property

<事件对象

获取按下键盘按键的Unicode值:

var x = event.which;

x的结果可能是:

119   // 119 is the character "w"
试一试»

更多"Try it Yourself"下面的例子。


定义和用法

该该属性返回触发键的Unicode字符代码onkeypress事件的事件,或者触发关键的Unicode键码的onkeydown的onkeyup事件。

两个代码类型之间的区别:

  • 字符代码 - 一个数字表示一个ASCII字符
  • 键码 - 一个数字代表了键盘上的实际键

这些类型并不总是意味着同样的事情; 例如,较低的情况下"w"和上壳体"W"具有相同的键盘代码,因为当按下键盘上的键是相同的(just "W" = the number "87") ,但具有不同字符代码,因为所得到的字符是不同的(任一"w""W" ,这是"119"或“87”) -参见"More Examples"下面,以更好地理解它。

提示:要了解,如果用户按下打印键(如"a"或“5”),建议使用此属性的onkeypress事件的事件。 要了解,如果用户按下功能键(如"F1""CAPS LOCK"或“家庭”)使用的onkeydown或onkeyup事件。

注:该属性没有在IE8和更早版本支持。 对于这些版本的浏览器,你可以使用的keyCode属性。 然而,keyCode属性不会在Firefox中的onkeypress事件事件工作。 对于一个跨浏览器的解决方案,你可以使用下面的代码:

var x = event.which || event.keyCode;  // Use either which or keyCode , depending on browser support

提示:对于所有Unicode字符的列表,请学习我们完整的Unicode参考

提示:如果你想返回的Unicode值转换为字符,使用fromCharCode()方法。

注:此属性是只读的。

注:仅用于提供兼容性无论是它和keyCode属性。 在DOM事件规范的最新版本建议使用关键属性,而不是(if available)

提示:如果你想找出是否"ALT""CTRL""META""SHIFT"键被按下时的一个关键事件发生时,使用方altKey中ctrlKeymetaKeyShift键,财产。


浏览器支持

在表中的数字规定,完全支持该财产浏览器版本。

属性
which 9

句法

event .which

技术细节

返回值: 一个数字,表示无论是Unicode字符码或Unicode的关键码
DOM版本: 2级DOM事件

例子

更多示例

使用onkeypress事件和onkeydown事件证明字符代码和键盘码之间的差异:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">

function uniCharCode(event) {
    var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
    document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}

function uniKeyCode(event) {
    var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
    document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

当按下"a"在键盘上键(not using caps lock)关键将是的结果:

Unicode CHARACTER code: 97
Unicode KEY code: 65
试一试»

提醒一些文本,如果用户按下Esc键:

<input type="text" onkeydown="myFunction(event)">

function myFunction(event) {
    var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
    if (x == 27) {  // 27 is the ESC key
        alert ("You pressed the Escape key!");
    }
}
试一试»

转换的Unicode值到字符(does not work for function keys)

var x = event.which || event.keyCode;   // Get the Unicode value
var y = String.fromCharCode(x);         // Convert the value into a character
试一试»

相关页面

HTML DOM参考: KeyboardEvent key Property

HTML DOM参考: KeyboardEvent keyCode Property

HTML DOM参考: KeyboardEvent charCode Property


<事件对象