溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在JavaScript中使用鍵盤事件

發(fā)布時間:2021-05-10 17:43:47 來源:億速云 閱讀:263 作者:Leah 欄目:web開發(fā)

如何在JavaScript中使用鍵盤事件?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

javascript是一種什么語言

javascript是一種動態(tài)類型、弱類型的語言,基于對象和事件驅(qū)動并具有相對安全性并廣泛用于客戶端網(wǎng)頁開發(fā)的腳本語言,同時也是一種廣泛用于客戶端Web開發(fā)的腳本語言。它主要用來給HTML網(wǎng)頁添加動態(tài)功能,現(xiàn)在JavaScript也可被用于網(wǎng)絡服務器,如Node.js。

JavaScript 鍵盤事件有以下3種

keydown
鍵盤按鍵按下(如果按著不放,會持續(xù)觸發(fā)該事件),可以捕獲組合鍵。

keypress
鍵盤非功能按鍵按下(在keydown之后觸發(fā),如果按著不放會持續(xù)觸發(fā)該事件),只能捕獲單個鍵。

keyup
鍵盤按鍵彈起,可以捕獲組合鍵。

全局事件對象event

event.ctrlKey
功能鍵”ctrl”鍵是否按下。

event.altKey
功能鍵”alt”鍵是否按下。

event.shiftKey
功能鍵”shift”鍵是否按下。

event.keyCode
鍵盤按鍵鍵碼。

event.charCode
鍵盤非功能按鍵的ASCII值,可以用其區(qū)分大小寫。

String.fromCharCode(event.charCode)
將ASCII值轉(zhuǎn)化為對應的字符形式。

注意點

  • KeyDown觸發(fā)后,不一定觸發(fā)KeyUp。比如此時單擊鼠標右鍵。

  • 其中PrScrn 按鍵KeyPress、KeyDown和KeyUp 都不能捕獲。

  • KeyPress主要用來捕獲數(shù)字(包括Shift+數(shù)字的符號)、字母(注意:包括大小寫)、小鍵盤等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜單鍵}、{開始鍵}和方向鍵外的ANSI字符。

  • KeyDown 和 KeyUp 的keyCode區(qū)分小鍵盤和主鍵盤的數(shù)字字符。KeyPress 則不區(qū)分小鍵盤和主鍵盤的數(shù)字字符。

keyCodekey
8BackSpace BackSpace
9Tab Tab
12Clear
13Enter
16Shift_L
17Control_L
18Alt_L
19Pause
20Caps_Lock
27Escape Escape
32space space
33Prior
34Next
35End
36Home
37Left
38Up
39Right
40Down
41Select
42Print
43Execute
45Insert
46Delete
47Help
480 equal braceright
491 exclam onesuperior
502 quotedbl twosuperior
513 section threesuperior
524 dollar
535 percent
546 ampersand
557 slash braceleft
568 parenleft bracketleft
579 parenright bracketright
65a A
66b B
67c C
68d D
69e E EuroSign
70f F
71g G
72h H
73i I
74j J
75k K
76l L
77m M mu
78n N
79o O
80p P
81q Q at
82r R
83s S
84t T
85u U
86v V
87w W
88x X
89y Y
90z Z
96KP_0 KP_0
97KP_1 KP_1
98KP_2 KP_2
99KP_3 KP_3
100KP_4 KP_4
101KP_5 KP_5
102KP_6 KP_6
103KP_7 KP_7
104KP_8 KP_8
105KP_9 KP_9
106KP_Multiply KP_Multiply
107KP_Add KP_Add
108KP_Separator KP_Separator
109KP_Subtract KP_Subtract
110KP_Decimal KP_Decimal
111KP_Divide KP_Divide
112F1
113F2
114F3
115F4
116F5
117F6
118F7
119F8
120F9
121F10
122F11
123F12
124F13
125F14
126F15
127F16
128F17
129F18
130F19
131F20
132F21
133F22
134F23
135F24
136Num_Lock
137Scroll_Lock
187acute grave
188comma semicolon
189minus underscore
190period colon
192numbersign apostrophe
210plusminus hyphen macron
211
212copyright registered
213guillemotleft guillemotright
214masculine ordfeminine
215ae AE
216cent yen
217questiondown exclamdown
218onequarter onehalf threequarters
220less greater bar
221plus asterisk asciitilde
227multiply division
228acircumflex Acircumflex
229ecircumflex Ecircumflex
230icircumflex Icircumflex
231ocircumflex Ocircumflex
232ucircumflex Ucircumflex
233ntilde Ntilde
234yacute Yacute
235oslash Ooblique
236aring Aring
237ccedilla Ccedilla
238thorn THORN
239eth ETH
240diaeresis cedilla currency
241agrave Agrave atilde Atilde
242egrave Egrave
243igrave Igrave
244ograve Ograve otilde Otilde
245ugrave Ugrave
246adiaeresis Adiaeresis
247ediaeresis Ediaeresis
248idiaeresis Idiaeresis
249odiaeresis Odiaeresis
250udiaeresis Udiaeresis
251ssharp question backslash
252asciicircum degree
2533 sterling
254Mode_switch

測試范例

<html>
  <body>
    <script type="text/javascript">
      function appendText(str) {
        document.body.innerHTML += (str+"<br/>");
      }
      document.onkeydown = function(){
        //如果長按的話,會持續(xù)觸發(fā)keydown和keypress(如果有該事件的話)
        appendText("onkeydown");
        if(event.ctrlKey) {
          appendText("ctrlKey");
        }
        if(event.altKey) {
          appendText("altKey");
        }
        if(event.shiftKey) {
          appendText("shiftKey");
        }
        //無charCode屬性,只有keypress才有該屬性
        if(event.charCode) {
          appendText(String.fromCharCode(event.charCode));
        }
        if(event.keyCode) {
          appendText(event.keyCode);
        }
        //該語句只對chrome和edge有效,可以屏蔽keypress(只對chrome和edge瀏覽器有效)
        //event.returnValue = false;
      };
      document.onkeypress = function() {
        //keypress無法監(jiān)聽到組合鍵
        appendText("onkeypress");
        if(event.ctrlKey) {
          appendText("ctrlKey");
        }
        if(event.altKey) {
          appendText("altKey");
        }
        if(event.shiftKey) {
          appendText("shiftKey");
        }
        //charCode是字母的Unicode值
        if(event.charCode) {
          appendText(String.fromCharCode(event.charCode));
        }
      }
      document.onkeyup = function() {
        appendText("onkeyup");
      }
    </script>
  </body>
</html>

這里使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼,運行效果如下圖所示:

如何在JavaScript中使用鍵盤事件

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI