国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript 事件——“事件類型”中“鍵盤與文本事件”的注意要點(diǎn)

everfight / 1770人閱讀

摘要:級(jí)事件為鍵盤事件制訂了規(guī)范鍵盤事件按下任意鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā)按下字符鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā)按下鍵也會(huì)觸發(fā)釋放鍵盤上的鍵時(shí)觸發(fā)文本事件在文本插入文本框之前會(huì)觸發(fā)事件。

“DOM3級(jí)事件”為鍵盤事件制訂了規(guī)范:

鍵盤事件:

keydown:按下任意鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā);

keypress:按下字符鍵觸發(fā),如果按住不放,會(huì)重復(fù)觸發(fā);按下Esc鍵也會(huì)觸發(fā);

keyup:釋放鍵盤上的鍵時(shí)觸發(fā);

文本事件:

textInput:在文本插入文本框之前會(huì)觸發(fā)textInput事件。

程序:

當(dāng)用戶按下一個(gè)鍵盤上的字符鍵:keydown --> keypress --> keyup;
當(dāng)用戶按下一個(gè)鍵盤上的非字符鍵:keydown --> keyup;

鍵盤事件 鍵碼event.keyCode屬性

發(fā)聲keydown和keyup事件,event對(duì)象的keyCode屬性包含一個(gè)代碼,與鍵盤上一個(gè)特定的鍵對(duì)應(yīng)。對(duì)數(shù)字字母字符鍵,keyCode屬性的值與ASCⅡ碼中對(duì)應(yīng)小寫字母或數(shù)字的編碼相同。

鍵碼如下:

字母和數(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    Dw 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

多媒體鍵碼值(keyCode)
音量加    175
音量減    174
停止        179
靜音        173
瀏覽器    172
郵件        180
搜索        170
收藏        171

但部分鍵碼在不同瀏覽器有不同的值;

字符編碼charCode屬性

這個(gè)屬性只有在發(fā)聲keypress事件才包含值,而且這個(gè)值是按下的那個(gè)鍵所代表字符的ASCⅡ編碼;此時(shí)的keyCode通常等于0或者也可能等于所按鍵的鍵碼。

window.onkeydown = function() {
    console.log(event.charCode); //a的值為0
}
window.onkeypress = function() {
    console.log(event.charCode); //a的值為97
}
window.onkeydown = function() {
    console.log(event.keyCode); //a的值為65
}
window.onkeypress = function() {
    console.log(event.keyCode); //a的值為97
}

上面的例子顯示,當(dāng)onkeydown時(shí),charCode為0,keyCode為65;當(dāng)onkeypress時(shí),charCode與keyCode值相同為97

IE8及之前的版本和Opera是在keyCode中保存字符的ASCⅡ編碼,通用版如下:

function getCharCode () {
    if (typeof event.charCode == "number") {
        return event.charCode;
    } else {
        return event.keyCode;
    }
}

獲得了ASCⅡ編碼后,可以通過String.fromCharCode()將其轉(zhuǎn)換成實(shí)際的字符。

var inputName = document.getElementById("name");
var list = [];
inputName.onkeypress = function() {
    var charCode = event.charCode;
    var keys = String.fromCharCode(charCode);
    list.push(keys);
    charCode = null;
    keys = null;
}
inputName.onkeydown = function() {
    var keyCode = event.keyCode;
    switch (keyCode) {
        case 8:
            list.push("backspace");
            break;
        case 37:
            list.push("left")
            break;
        case 39:
            list.push("right")
            break;
        case 13:
            console.log(list.join(""));
            inputName.value = null;
            list.splice(0, list.length);
            break;
    }
}
//輸入oliver,輸出oliver
DOM3級(jí)變化 keycharkeyIdentifier屬性

DOM3級(jí)事件中的鍵盤事件,不再包含charCode屬性,而是包含兩個(gè)新屬性:keychar

key屬性:返回相應(yīng)的文本字符(字符鍵返回字符,非字符鍵返回“shift”等);

char屬性:返回相應(yīng)的文本字符(字符鍵返回字符,非字符鍵返回null);

兼容性:

IE9支持key屬性但不支持char屬性;

Safari 5和Chrome支持名為keyIdentifier的屬性,非字符鍵返回“shift”等,字符鍵返回格式類似“U+0000”的字符串,表示Unicode值。

如下:

window.onkeydown = function () {
    console.log(event.key || event.keyIdentifier);
}
locationkeyLocation屬性

location屬性表示按下了什么位置上的鍵:

0表示默認(rèn)鍵盤;

1表示左側(cè)位置(左邊的Alt鍵等);

2表示右側(cè)位置;

3表示數(shù)字小鍵盤;

4表示移動(dòng)設(shè)備鍵盤(虛擬鍵盤);

5表示手柄(Wii控制器等);

IE9支持這個(gè)屬性;Safari和Chrome支持名為keyLocation屬性(目前貌似支持location屬性了);

getModifierState()方法

接收一個(gè)參數(shù)(修改鍵),當(dāng)指定的修改鍵是活動(dòng)的,這個(gè)方法返回true,否則返回false;參數(shù)有(“Shift”、“Alt”、“Control”、“Meta”);

然而事實(shí)上用event.shiftKey等屬性即可。

textInput事件 textInput事件

當(dāng)用戶在可編輯區(qū)域中輸入字符時(shí),就會(huì)觸發(fā)。與keypress不同,首先只要能獲得焦點(diǎn)的元素都可以觸發(fā)keypress,但只有可編輯區(qū)域才能出發(fā)textInput。另一個(gè)區(qū)別是textInput事件只會(huì)在用戶按下能夠輸入實(shí)際字符的鍵時(shí)才會(huì)被觸發(fā),keypress則在按下能夠影響文本顯示的鍵時(shí)也會(huì)觸發(fā)(例如退格鍵)。

另外event中data屬性返回用戶輸入的字符:

var textbox = document.getElementById("name");
textbox.addEventListener("textInput", function () {
    console.log(event.data);
})

注意,只能用addEventListener函數(shù)。

inputMethod屬性

dvent對(duì)象上的屬性,表示把文本輸入到文本框中的方式:

0:不確定如何輸入的;

1:鍵盤;

2:粘貼;

3:拖放;

4:IME;

5:表單中選擇某一項(xiàng)輸入;

6:手寫;

7:語音;

8:組合輸入;

9:腳本輸入;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91596.html

相關(guān)文章

  • JavaScript系列之事件類型

    摘要:有兩種事件處理程序的方式。第一種第二種事件當(dāng)調(diào)整瀏覽器的窗口到一個(gè)新的寬度或高度時(shí),就會(huì)觸發(fā)事件。事件在元素獲得焦點(diǎn)時(shí)觸發(fā)。這個(gè)事件冒泡某些瀏覽器不支持。事件在鼠標(biāo)光標(biāo)從元素外部首次移動(dòng)到元素范圍內(nèi)時(shí)觸發(fā)。事件這個(gè)事件跟蹤鼠標(biāo)滾輪。 JavaScript簡(jiǎn)單入門可以看看我丑丑的Github博客JavaScript簡(jiǎn)單入門 本文主要簡(jiǎn)單介紹以下幾類事件: UI事件 焦點(diǎn)事件 鼠標(biāo)與滾輪...

    chanthuang 評(píng)論0 收藏0
  • JavaScript DOM 事件初探

    摘要:級(jí)事件規(guī)定的事件流包括三個(gè)階段事件捕獲階段處于目標(biāo)階段和事件冒泡階段。對(duì)象只存在于事件處理程序執(zhí)行期間,一旦執(zhí)行完畢,立即被銷毀。焦點(diǎn)事件焦點(diǎn)事件會(huì)在頁面元素獲得或失去焦點(diǎn)時(shí)觸發(fā)。 JavaScript DOM 事件初探 原文鏈接 事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特定的交互瞬間,比如單擊、雙擊、鼠標(biāo)懸浮等。 事件流 事件流描述的是從頁面中接收事件的順序,或者說是事件在頁面中傳播...

    Moxmi 評(píng)論0 收藏0
  • 高程3總結(jié)#第13章事件

    摘要:所有節(jié)點(diǎn)中都包含這兩個(gè)方法,并且它們都接受個(gè)參數(shù)要處理的事件名,作為事件處理程序的函數(shù)和一個(gè)布爾值。和支持這個(gè)事件。 事件 事件流 事件流描述的是從頁面中接收事件的順序 事件冒泡 IE的事件流叫做事件冒泡,即事件開始時(shí)由最具體的元素(文檔中嵌套層次最深的那個(gè)節(jié)點(diǎn))接收,然后逐級(jí)向上傳播到較為不具體的節(jié)點(diǎn)showImg(https://segmentfault.com/img/bVbg5...

    RyanQ 評(píng)論0 收藏0
  • Javascript事件(二)

    摘要:和支持這個(gè)事件。特定于事件目標(biāo)的對(duì)象的數(shù)組。這個(gè)事件的目的是提供與文檔或元素的加載狀態(tài)有關(guān)的信息和有一個(gè)特性,名叫往返緩存,或,這個(gè)事件在頁面顯示時(shí)觸發(fā)該事件會(huì)在瀏覽器卸載頁面的時(shí)候觸發(fā)事件的對(duì)象還包含一個(gè)名為的布爾值屬性。 showImg(http://static.segmentfault.com/build/global/img/emojis/ribbon.png);事件類型 ...

    desdik 評(píng)論0 收藏0
  • DOM事件

    摘要:與之間的交互是通過事件實(shí)現(xiàn)的。而,則將事件一直冒泡到對(duì)象。事件處理程序的名字以開頭,例如。級(jí)事件處理程序通過指定事件處理程序的傳統(tǒng)方式,就是將一個(gè)函數(shù)賦值給一個(gè)事件處理程序?qū)傩浴W儎?dòng)事件在結(jié)構(gòu)發(fā)生變化時(shí)觸發(fā),比如插入或者刪除節(jié)點(diǎn)。 javascript與HTML之間的交互是通過事件實(shí)現(xiàn)的。事件就是文檔或者瀏覽器中發(fā)生的一些特定的交互瞬間。 事件流 事件流描述的是頁面接受事件的順序,而I...

    AlphaGooo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<