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 onkeydown 或 onkeyup 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" 键,请使用 altKey、ctrlKey、metaKey 或 shiftKey 属性。
语法
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
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!"); } }
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
Magkakahiwalay na pahina
HTML DOM Reference Manual:KeyboardEvent key Atribute
HTML DOM Reference Manual:KeyboardEvent keyCode Atribute
HTML DOM Reference Manual:KeyboardEvent charCode Atribute