Atribut which KeyboardEvent

Definisi dan penggunaan

atribut which mengembalikan yang diaktifkan Peristiwa onkeypress Kod aksara Unicode kepadan yang diaktifkan, atau onkeydownonkeyup Kod kepadan Unicode yang ditekan untuk kepadan acara

Perbezaan antara kedua jenis kod:

  • Kod aksara - wakil nombor untuk aksara ASCII
  • Kod kepadan - wakil nombor untuk kepadan sebenar di papan kekunci

Jenis ini bukan selalu bermakna yang sama. Contohnya, kod papan kekunci kecil "w" dan besar "W" adalah sama kerana kepadan yang ditekan di papan kekunci adalah sama ("W" = nombor "87"), tetapi kod aksara berbeza kerana aksara yang dihasilkan adalah berbeza ("w" atau "W", iaitu "119" atau "87") - sila lihat contoh di bawah untuk mendapat pemahaman yang lebih baik.

提示:Jika ingin mengetahui sama ada pengguna menekan kepadan yang boleh dicetak (contohnya "a" atau "5"), disarankan untuk menggunakan sifat ini di acara onkeypress.Untuk mengetahui sama ada pengguna menekan kepadan fungsi (contohnya "F1", "CAPS LOCK" atau "Home"), gunakan acara onkeydown atau 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 属性。

Contoh

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

var x = event.which;

页面下方有更多 TIY 实例。

Cuba Sendiri

语法

event.which

技术细节

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

浏览器支持

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

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

更多实例

Contoh

使用 onkeypress 和 onkeydown 来演示字符代码与键盘代码之间的区别:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode digunakan untuk versi IE8 dan sebelumnya
  document.getElementById("demo").innerHTML = "Kode CARAKTER Unicode: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode digunakan untuk versi IE8 dan sebelumnya
  document.getElementById("demo2").innerHTML = "Kode KEY Unicode: " + key;
}

Sekiranya menekan kepadan "a" di atas papan kepadan (tanpa menggunakan Capslock), hasil char dan key adalah:

Kode CARAKTER Unicode: 97
Kode KEY Unicode: 65

Cuba Sendiri

Contoh

Jika pengguna menekan kepadan Escape, tampilkan beberapa teks:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode digunakan untuk versi IE8 dan sebelumnya
  if (x == 27) {  // 27 adalah kepadan ESC
    alert ("Anda menekan kepadan Escape!");
  }
}

Cuba Sendiri

Contoh

Menyenaraikan nilai Unicode kepada aksara (tidak digunakan untuk tombol fungsi):

var x = event.which || event.keyCode;   // Dapatkan nilai Unicode
var y = String.fromCharCode(x);         // Menyenaraikan nilai kepada aksara

Cuba Sendiri

Laman Berkenaan

Panduan HTML DOM:Sifat key KeyboardEvent

Panduan HTML DOM:Sifat keyCode KeyboardEvent

Panduan HTML DOM:Sifat charCode KeyboardEvent