KeyboardEvent "which" property

Paglilinaw at paggamit

Ang "which" property na nagbabalik ng nangyari onkeypress Event Unicode character code ng nangyari sa event na nangyari, o nagpalakip onkeydownonkeyup Unicode keyboard code ng nangyari sa event na nangyari

Pagkakaiba ng dalawang uri ng code:

  • Character code - nagrerepresenta ng numero ng ASCII character
  • Keyboard code - nagrerepresenta ng numero ng aktwal na key sa keyboard

Hindi palaging ang ganitong uri na nangangahulugan ng kaparehong bagay. Halimbawa, ang keyboard code ng maliliit na "w" at malaki na "W" ay pareho, dahil ang key na pinindot sa keyboard ay pareho ("W" = numero "87"), ngunit ang character code ay hindi pareho, dahil ang resulting character ay iba ("w" o "W", na "119" o "87") - mangyaring tingnan ang mas maraming halimbawa sa ibaba, upang mas mabuti nating maunawaan ito.

提示:Kung naisipang malaman kung nagpindot ba ang gumagamit sa isang puwiderang key (halimbawa "a" o "5"), itinuturo na gamitin ang katangian na ito sa onkeypress event. Upang malaman kung nagpindot ba ang gumagamit sa isang function key (halimbawa "F1", "CAPS LOCK" o "Home"), gamitin ang onkeydown o onkeyup event.

注释: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 属性。

Halimbawa

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

var x = event.which;

页面下方有更多 TIY 实例。

Subukan nang personal

语法

event.which

技术细节

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

浏览器支持

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

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

更多实例

Halimbawa

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

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)"> 
function uniCharCode(event) {
  var char = event.which || event.keyCode; // event.keyCode ay ginagamit sa IE8 at mas maaga
  document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
  var key = event.which || event.keyCode; // event.keyCode ay ginagamit sa IE8 at mas maaga
  document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

Pindutin ang "a" key sa keyboard (hindi gamit ang Capslock) kapag ang resulta ng char at key ay magiging:

Unicode CHARACTER code: 97
Unicode KEY code: 65

Subukan nang personal

Halimbawa

Kung nanghinapak ang Escape key ng gumagamit, magpakita ng ilang teksto:

<input type="text" onkeydown="myFunction(event)"> 
function myFunction(event) {
  var x = event.which || event.keyCode; // event.keyCode ay ginagamit sa IE8 at mas maaga
  if (x == 27) {  // 27 ay ang ESC key
    alert ("Nagpindot ka ng Escape key!");
  }
}

Subukan nang personal

Halimbawa

Pagbabagong halaga ng Unicode sa character (hindi naaangkop sa function keys):

var x = event.which || event.keyCode;   // Pagkuha ng halaga ng Unicode
var y = String.fromCharCode(x);         // Pagbabagong halaga sa character

Subukan nang personal

Magkakahiwalay na pahina

HTML DOM Reference Manual:KeyboardEvent key Atribute

HTML DOM Reference Manual:KeyboardEvent keyCode Atribute

HTML DOM Reference Manual:KeyboardEvent charCode Atribute