多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > web前端 > jscript > JavaScript Event學(xué)習(xí)第十一章:按鍵的檢測

JavaScript Event學(xué)習(xí)第十一章:按鍵的檢測

來源:程序員人生   發(fā)布時間:2014-04-12 13:21:35 閱讀次數(shù):2683次

檢測用戶的按鍵是事件處理程序的一個很特別的環(huán)節(jié)。這一章我們著力解決一些非常棘手的問題,并且制定一個完備的表格。

第一個問題是對于按鍵事件來說根本就沒有標(biāo)準(zhǔn),按照規(guī)范說的:包含鍵盤等輸入設(shè)備的事件模型會在以后的DOM規(guī)范中作出解釋。

正如我們了解到的,瀏覽器在最開始設(shè)計的時候并沒有一個標(biāo)準(zhǔn),大家都像做實驗似的,最后的成品雖然是有用的,但是肯定造成了兼容性的問題。按鍵問題也不例外:這里有兩個屬性能檢測到用戶按下了什么鍵,雖然有足夠的理由為什么需要兩個屬性,但是依然并不是所有的瀏覽器都支持。

另外,在keypress與keydown和keyup之間還有一些很重要的區(qū)別。

最后就是windows和mac的區(qū)別了,在mac上要檢測用戶按下了什么鍵簡直比在windows下難了N倍。

keyCode和charCode

能檢測到用戶按下了什么鍵的兩個屬性就是keyCode和charCode了。簡單說來:keyCode是用來檢測用戶真正按下了鍵盤上那個鍵的,而charCode則是給出鍵入字符的ASCII碼。有一些小問題需要注意:大寫的A和小寫的a的keyCode是一樣的,因為他們在鍵盤上就是一個鍵;但是charCode不一樣,因為他倆是兩個不同的字符。

IE和Opera不支持charCode。然而他們會在keyCode里面保存字符信息,但是只是在onkeypress的情況下,在onkeydown/up情況下包含的是鍵的信息。

字符和數(shù)字鍵

讓我們以一個簡單的例子開始。小寫a的ASCII碼是97,大寫的是65。那么在兩種情況下,當(dāng)用戶在鍵盤上敲下相同的鍵的時候,什么時候的鍵值是65呢(相當(dāng)于大寫的A)

keyCode

 

charCode

因此,在onkeydown/up的情況下,你能夠從keyCode里面得到鍵值。在onkeypress情況下,想要得到字符值就要使用:evt.charCode || evt.keyCode.

標(biāo)點符號

我還是決定不對標(biāo)點符號鍵做測試了。我懷疑這不僅跟瀏覽器和操作系統(tǒng)有關(guān),還可能跟鍵盤設(shè)置和默認(rèn)語言有關(guān)。我一般用的是荷蘭語版的windows,如果跟美國版的101鍵的鍵盤相比有很大出入,我一點都不會覺得意外。

比如說shift+,鍵出來的應(yīng)該是<,但是我測試的ASCII碼的結(jié)果卻是’?’的。當(dāng)我發(fā)現(xiàn)了這個問題,我決定還是不在標(biāo)點符號鍵的問題上浪費(fèi)時間了.

特別鍵

功能鍵就是只那些不能打印出來的但是卻具有一定功能的鍵。比如shift、ESC、enter等等都是功能鍵。

一些說明:

1、一般,mac的可靠性比windows要差,有些鍵可能檢測不到

2、IE不會觸發(fā)下面這鍵的keypress事件:delete, end, enter, escape, 功能鍵, home, insert, pageUp/Down 和 tab。

3、在onkeypress事件下,Safari會給下面這些鍵給出很奇怪的keyCode值:delete, end, 功能鍵, home 和 pageUp.Down。但是在onkeydown/up下面就很正常。

4、Alt,Cmd,Ctrl和shfit鍵在mac上無法探測,不過Opera下面例外。然而你卻可以使用altKey,ctrlKey,shfitKey這些屬性。

如果你需要探測這些鍵,你就探測一下載onkeydown/up下面的keyCode就行了,算是給自己幫忙了,onkeypress和charCode就忘掉吧。

原文后面有個大的鍵值的列表,還有一個測試框,有興趣的童鞋可以移步。

翻譯地址:http://www.quirksmode.org/js/keys.html
作者:北玉(tw:@rehawk)
文章出處:http://beiyu.cnblogs.com

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久久久这里只有精品 | www.免费观看 | 精品亚洲视频在线 | 大伊人网 | 日韩图区| 成人自拍在线 | 亚洲天堂最新网址 | 麻豆片免费观看在线看 | 国产福利视频一区 | 亚洲黄a | 久久精品视频6 | 最近最新中文字幕在线手机版 | 一牛精品视频在线观看免费 | 欧美视频亚洲视频 | 日韩欧美一区二区三区中文精品 | 亚洲欧美日韩精品永久在线 | 国产 日韩 欧美 综合 | 精品欧美一区二区三区 | 亚洲欧美日韩综合 | 日韩欧美一区二区久久 | 亚洲码在线观看 | 欧美一区二区三区不卡免费观看 | 在线亚视频| 亚洲免费网站在线观看 | 欧美猛交xxxx免费看 | 2020国产精品自拍 | 久久有精品 | 中文字幕第二一区 | 中文亚洲欧美 | 国产成人久久久精品一区二区三区 | 日本噜噜影院 | 一级毛片真人不卡免费播 | 中国高清色视频www 中国国产成人精品久久 | 在线中文字幕一区 | 欧美乱人伦中文在线观看不卡 | 一二三四观看视频中文在线观看 | 亚洲欧美另类精品久久久 | 亚洲国产高清人在线 | 亚洲不卡视频 | 成在线人免费视频一区二区三区 | 热久久视久久精品18国产 |