最新的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


<事件對象