Η ιδιότητα which του KeyboardEvent

Ορισμός και χρήση

Η ιδιότητα which επιστρέφει το συμβάν Ανάγνωση Event onkeypress Ο κώδικας χαρακτήρα Unicode του πλήκτρου, ή ο onkeydownonkeyup Ο κώδικας πλήκτρου Unicode του πλήκτρου του συμβάντος.

Διαφορά μεταξύ των δύο τύπων κωδίκων:

  • Κώδικας χαρακτήρα - Αντικατοπτρίζει τον αριθμητικό κώδικα του χαρακτήρα 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() 方法

注释:该属性只读。

注释:提供 keyCode 和 which 属性只是为了兼容性。最新版本的 DOM 事件规范建议使用 key 属性代替(如果可用)。

提示:如果您想知道在发生按键事件时是否按下了 "ALT"、"CTRL"、"META" 或 "SHIFT" 键,请使用 altKeyctrlKeymetaKeyshiftKey 属性。

Παράδειγμα

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

var x = event.which;

页面下方有更多 TIY 实例。

Δοκιμάστε το προσωπικά

语法

event.which

技术细节

返回值: 数字值,表示 Unicode 字符代码或 Unicode 键盘代码。
DOM 版本: DOM Level 2 Events

浏览器支持

表中的数字注明了完全支持该属性的首个浏览器版本。

属性 Chrome IE Firefox Safari Opera
which 支持 9.0 支持 支持 支持

更多实例

Παράδειγμα

使用 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: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode για τις εκδόσεις IE8 και παλιότερες
  document.getElementById("demo2").innerHTML = "Κώδικας KEY Unicode: " + key;
}

Πιέστε το κλειδί "a" του πληκτρολογίου (χωρίς να χρησιμοποιείτε το Capslock) όταν, το αποτέλεσμα του char και του key θα είναι:

Κώδικας ΧΑΡΑΚΤΗΡΑ Unicode: 97
Κώδικας KEY Unicode: 65

Δοκιμάστε το προσωπικά

Παράδειγμα

Αν ο χρήστης πατήσει το πλήκτρο Escape, εμφανίστε μερικό κείμενο:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode για τις εκδόσεις IE8 και παλιότερες
  if (x == 27) {  // 27 είναι το πλήκτρο ESC
    alert ("Πιέσατε το πλήκτρο Escape!");
  }
}

Δοκιμάστε το προσωπικά

Παράδειγμα

Μετατροπή τιμής Unicode σε χαρακτήρα (μη ισχύει για τα πλήκτρα λειτουργίας):

var x = event.which || event.keyCode;   // Αποτελεσματική αξία Unicode
var y = String.fromCharCode(x);         // Μετατροπή τιμής σε χαρακτήρα

Δοκιμάστε το προσωπικά

Σχετικές σελίδες

Εγχειρίδιο HTML DOM:Ενότητα key του KeyboardEvent

Εγχειρίδιο HTML DOM:Ενότητα keyCode του KeyboardEvent

Εγχειρίδιο HTML DOM:Ενότητα charCode του KeyboardEvent