欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript 鍵盤事件總結(jié) 推薦

 更新時(shí)間:2009年12月24日 22:02:39   作者:  
在進(jìn)入正題前,我們看一下瀏覽器對(duì)于鍵盤的一些默認(rèn)事件,這有助于我們用javascript截獲鍵盤事件。
在form中, submit的快捷鍵是 enter,reset的快捷鍵是 esc。不過(guò)在IE6,safari4,ff3.5,opera10,chrome中,按Enter,不但激發(fā)form的submit事件,同時(shí)也會(huì)激發(fā)提交按鈕的onclick,激發(fā)順序?yàn)樘峤话粹o的 onclick → form 的 onsubmit。

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]

不過(guò)并不止提交按鈕會(huì)激發(fā)form的submit事件,連同上面的歸納如下:

1. 如果表單里有一個(gè)type="submit"的按鈕,回車鍵生效。
2. 如果表單里只有一個(gè)type="text"的input,不管按鈕是什么type,回車鍵生效。
3. 如果按鈕不是用input,而是用button,并且沒(méi)有加type,IE下默認(rèn)為type=button,F(xiàn)X默認(rèn)為type=submit。
4. 其他表單元素如textarea、select不影響,radio checkbox不影響觸發(fā)規(guī)則,但本身在FX下會(huì)響應(yīng)回車鍵,在IE下不響應(yīng)。
5. type="image"的input,效果等同于type="submit"。不知道為什么會(huì)設(shè)計(jì)這樣一種type,不推薦使用,應(yīng)該用CSS添加背景圖合適些。

除了在按鈕中綁定鍵盤事件外,瀏覽器還有一個(gè)accesskey 屬性來(lái)指定鏈接的快捷鍵。注意 accesskey 的設(shè)置如果和瀏覽器的菜單相同,會(huì)優(yōu)先于菜單。在IE中,快捷鍵是 alt + 設(shè)置的鍵值,F(xiàn)F是Alt+Shift+ 設(shè)置的鍵值。 在IE 中,a元素的 accesskey 只是使焦點(diǎn)轉(zhuǎn)移到鏈接上,并不等同于點(diǎn)擊,F(xiàn)F 中則相當(dāng)于點(diǎn)擊。與他對(duì)比的是,input type=checkbox 的 accesskey 效果不論在IE 還是 FF 中都是點(diǎn)擊。另外,我們還可以配合label標(biāo)簽來(lái)加強(qiáng)語(yǔ)義,個(gè)人是十分推薦這種做法的。

剩下的就需要編程了。javascript事件主要通過(guò)以下三個(gè)事件來(lái)捕獲鍵盤事件:onkeydown,onkeypress與onkeyup。該三個(gè)事件的執(zhí)行順序如下:onkeydown -> onkeypress ->onkeyup。在一般情況下,采用三種鍵盤事件均可對(duì)鍵盤輸入進(jìn)行有效的響應(yīng)。當(dāng)在實(shí)際使用中,會(huì)發(fā)現(xiàn)這幾者有些不同的差別。

onkeypress事件不能對(duì)系統(tǒng)功能鍵(例如:后退、刪除等,其中對(duì)中文輸入法不能有效響應(yīng))進(jìn)行正常的響應(yīng),onkeydown和onkeyup均可以對(duì)系統(tǒng)功能鍵進(jìn)行有效的攔截,但事件截獲的位置不同,可以根據(jù)具體的情況選擇不同的鍵盤事件。

由于onkeypress不能對(duì)系統(tǒng)功能鍵進(jìn)行捕獲,導(dǎo)致window.event對(duì)象的keyCode屬性和onkeydown,onkeyup 鍵盤事件中獲取的keyCode屬性不同,主要表現(xiàn)在onkeypress事件的keyCode對(duì)字母的大小寫敏感,而onkeydown、 onkeyup事件不敏感;onkeypress事件的keyCode無(wú)法區(qū)分主鍵盤上的數(shù)字鍵和副鍵盤數(shù)字鍵的,而onkeydown、onkeyup 的keyCode對(duì)主副鍵盤的數(shù)字鍵敏感。


[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]

我們可以利用以下腳本來(lái)監(jiān)聽網(wǎng)頁(yè)中的鍵盤事件,一旦用戶按下Enter鍵便開始你綁定的事件。
復(fù)制代碼 代碼如下:

function getKey(e){
e = e || window.event;
var keycode = e.which ? e.which : e.keyCode;
if(keycode == 13 || keycode == 108){ //如果按下ENTER鍵
//在這里設(shè)置你想綁定的事件
}
}

// 把keyup事件綁定到document中
function listenKey ( ) {
if (document.addEventListener) {
document.addEventListener("keyup",getKey,false);
} else if (document.attachEvent) {
document.attachEvent("onkeyup",getKey);
} else {
document.onkeyup = getKey;
}
}

最后附上,鍵盤中所有按鈕的keycode一覽
字母和數(shù)字鍵的鍵碼值(keyCode)
按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼
A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57

數(shù)字鍵盤上的鍵的鍵碼值(keyCode) 功能鍵鍵碼值(keyCode)
按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼
0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102 . 110        
7 103 / 111        

控制鍵鍵碼值(keyCode)
按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼 按鍵 鍵碼
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Down Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 \| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up Arrow 38 ,< 188 '" 222

另外我們還可以用event.altKey,event.ctrlKey,event.metaKey(上有微軟的旗幟),event.shiftKey來(lái)判斷對(duì)應(yīng)的鍵是否被按下,因?yàn)樗鼈兌际欠祷匾粋€(gè)布爾值。

相關(guān)文章

  • JS讀取cookies信息(記錄用戶名)

    JS讀取cookies信息(記錄用戶名)

    很多網(wǎng)站、博客把網(wǎng)頁(yè)生成html靜態(tài)頁(yè)面了,以利于搜索引擎的索引排名,減輕服務(wù)器負(fù)擔(dān)。靜態(tài)頁(yè)面由于其穩(wěn)定快速更快,給用戶及站長(zhǎng)帶來(lái)了方便。但評(píng)論后如何記住用戶的信息呢
    2012-01-01
  • 前端構(gòu)建工具之gulp的配置與搭建詳解

    前端構(gòu)建工具之gulp的配置與搭建詳解

    gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無(wú)需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)習(xí)起來(lái)很容易,下面這篇文章主要給大家介紹了關(guān)于前端構(gòu)建工具之gulp的配置與搭建的相關(guān)資料,需要的朋友可以參考下。
    2017-06-06
  • 淺談pc端rem字體設(shè)置的問(wèn)題

    淺談pc端rem字體設(shè)置的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談pc端rem字體設(shè)置的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • mui框架移動(dòng)開發(fā)初體驗(yàn)詳解

    mui框架移動(dòng)開發(fā)初體驗(yàn)詳解

    本篇文章主要介紹了mui框架移動(dòng)開發(fā)初體驗(yàn)詳解小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • JavaScript函數(shù)的使用教程

    JavaScript函數(shù)的使用教程

    這篇文章主要介紹了JavaScript函數(shù)的使用教程,JavaScript函數(shù)是被設(shè)計(jì)為執(zhí)行特定任務(wù)的代碼塊。JavaScript函數(shù)會(huì)在某代碼調(diào)用它時(shí)被執(zhí)行。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • javascript作用域鏈(Scope Chain)用法實(shí)例解析

    javascript作用域鏈(Scope Chain)用法實(shí)例解析

    這篇文章主要介紹了javascript作用域鏈(Scope Chain)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript作用域鏈(Scope Chain)的概念、功能與相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • JS中URL.createObjectURL使用示例講解

    JS中URL.createObjectURL使用示例講解

    URL.createObjectURL()方法會(huì)根據(jù)傳入的參數(shù)創(chuàng)建一個(gè)指向該參數(shù)對(duì)象的URL. 這個(gè)URL的生命僅存在于它被創(chuàng)建的這個(gè)文檔里. 新的對(duì)象URL指向執(zhí)行的File對(duì)象或者是Blob對(duì)象,這篇文章主要給大家介紹了關(guān)于JS中URL.createObjectURL使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • !DOCTYPE聲明對(duì)JavaScript的影響分析

    !DOCTYPE聲明對(duì)JavaScript的影響分析

    DOCTYPE是document type(文檔類型)的簡(jiǎn)寫,在web設(shè)計(jì)中用來(lái)說(shuō)明你用的XHTML或者HTML是什么版本。
    2010-04-04
  • javascript實(shí)現(xiàn)復(fù)選框超過(guò)限制即彈出警告框的方法

    javascript實(shí)現(xiàn)復(fù)選框超過(guò)限制即彈出警告框的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)復(fù)選框超過(guò)限制即彈出警告框的方法,涉及復(fù)選框及警告框的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 微信小程序動(dòng)態(tài)添加分享數(shù)據(jù)

    微信小程序動(dòng)態(tài)添加分享數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了微信小程序動(dòng)態(tài)添加分享數(shù)據(jù)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論