新聞中心
事件對(duì)象

實(shí)例
獲取按下的鍵盤按鍵Unicode值:
var x = event.which;
x 輸出結(jié)果為:
119 // 119 是字符"w"
嘗試一下 ?
本文底部包含了更多實(shí)例。
定義和使用
which 屬性返回onkeypress事件觸發(fā)的鍵的值的字符代碼,或者 onkeydown 或onkeyup 事件的鍵的代碼。
兩種代碼類型的區(qū)別是:
- 字符代碼 - 表示 ASCII 字符的數(shù)字
- 鍵盤代碼 - 表示鍵盤上真實(shí)鍵的數(shù)字
兩種類型的值不是都相等的,例如小寫字符"w" 和大寫字符 "W" 有相同的鍵盤代碼,因?yàn)樗麄兯麄冩I盤上 ( "W" 代碼為 "87"),但是它們有不同的字符代碼,兩個(gè)字符輸出是不一樣的( "w" 和 "W" 字符代碼為"119" 和 "87") - 查看以下實(shí)例可以更好的理解。
提示: 如果需要知道用戶按下的是打印鍵 (如"a" 或 "5"),建議使用 onkeypress 事件。如果需要知道用戶按下的是功能鍵(如 "F1", "CAPSLOCK" 或 "Home") 可使用 onkeydown 或 onkeyup 事件。
注意:IE8 及其更早版本不支持 which 屬性。不支持的瀏覽器可使用keyCode 屬性。但是, keyCode 屬性在 Firefox 瀏覽器的 onkeypress 事件中是無(wú)效的。兼容這些瀏覽器你可以使用以下代碼:
var x = event.which || event.keyCode; // 使用
which 或
keyCode, 這樣可支持不同瀏覽器
提示: 所有 Unicode 字符列表可查看我們的完整 Unicode 參考手冊(cè)。
提示: 如果你需要將 Unicode 值轉(zhuǎn)換為字符,可以使用 fromCharCode() 方法。
注意: 該屬性是只讀的。
注意: which和 keyCode 屬性提供了解決瀏覽器的兼容性的方法,最新版本的 DOM 事件推薦使用key 屬性來(lái)替代該方法。
提示: 如果你想查看是否按下了 "ALT", "CTRL","META" 或 "SHIFT" 鍵,可使用altKey, ctrlKey, metaKey 或shiftKey 屬性。
瀏覽器支持
表格中的數(shù)字表示支持該屬性的第一個(gè)瀏覽器的版本號(hào)。
| 屬性 | |||||
|---|---|---|---|---|---|
| which | Yes | 9.0 | Yes | Yes | Yes |
語(yǔ)法
event.which
技術(shù)細(xì)節(jié)
| 返回值: | 數(shù)字,表示 Unicode 字符代碼或 Unicode 鍵代碼 |
|---|---|
| DOM 版本: | DOM Level 2 Events |
更多實(shí)例
實(shí)例
使用 onkeypress 和 onkeydown 來(lái)演示字符代碼與鍵盤代碼的區(qū)別:
"text" onkeypress=
"uniCharCode(event)" onkeydown=
"uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which ||event.keyCode;
// event.keyCode 用于 IE8 及更早版本
document.getElementById(
"demo").innerHTML =
"Unicode CHARACTER code: " +char;
}
function uniKeyCode(event) {
var key = event.which|| event.keyCode;
// event.keyCode 用于 IE8 及更早版本
document.getElementById(
"demo2").innerHTML =
"Unicode KEY code: " + key;
}
當(dāng)在鍵盤上按下 "a" 鍵 (不使用大寫鎖定), 輸出結(jié)果如下:
Unicode 字符代碼: 97
Unicode 鍵盤代碼: 65
嘗試一下 ?
實(shí)例
如果按下 Esc 鍵彈出提示信息:
"text" onkeydown=
"myFunction(event)">
functionmyFunction(event) {
var x = event.which || event.keyCode;
//event.keyCode 用于 IE8 及更早版本
if (x ==
27) {
// 27 是 ESC 鍵
alert (
"You pressed the Escape key!");
}
}
嘗試一下 ?
實(shí)例
將 Unicode 值轉(zhuǎn)換為字符 (不能用于功能鍵):
var x = event.which || event.keyCode;
//獲取 Unicode 值
var y = String.fromCharCode(x);
// 將值轉(zhuǎn)換為字符
嘗試一下 ?
相關(guān)頁(yè)面
HTML DOM 參考手冊(cè): key 事件屬性
HTML DOM 參考手冊(cè): keyCode 事件屬性
HTML DOM 參考手冊(cè): charCode 事件屬性
事件對(duì)象
文章標(biāo)題:創(chuàng)新互聯(lián)JAVAscript和HTMLDOM參考手冊(cè):which事件屬性
標(biāo)題鏈接:http://m.fisionsoft.com.cn/article/cojipcj.html


咨詢
建站咨詢
