Javascript中有3個事件句柄在對應鍵盤的輸入狀態:keydown、keypress和keyup。 分別對應的意思是:按鍵被按下(按下按鍵但還沒有抬起)、點擊按鍵(按下并抬起按鍵)、按鍵抬起(按鍵抬起之后) 按鍵的分類 按鍵可以分為“實鍵”和“虛鍵” 實鍵可以理解為我們能夠看到并打印出來的按鍵,如字母“A”、數字“1”、字符“?”等等 虛鍵就是那些無法打印出來起到控制作用的按鍵,如“Ctrl”、“Alt”、“Shift”、“方向鍵”等等 IE在處理虛鍵時有個特例:虛鍵不會產生keypress事件,必須使用keydown或keyup來捕獲 按鍵碼和字符碼 按鍵碼是計算機用來識別不同按鍵的編碼,每一個按鍵都有按鍵碼 字符碼是可被打印的實鍵特有的,對應了鍵盤上顯示的字符 按鍵碼可以使用String.fromCharCode()轉換為字符碼 按鍵碼和和字符碼的對應表可以在本文最后找到。 獲取實鍵 代碼如下: function getKeyCode(e) { var keyCode = 0; var e = e || window.event; keyCode = e.keyCode || e.which || e.charCode; alert(keyCode); }
稍微解釋下 1. e為Firefox等標準瀏覽器支持的JS隱藏變量,表示一個“事件”;IE系列中沒有“e”,而是用window.event來表示“事件”;所以var e = e || window.event;就表示:獲取當前正在發生的事件。 2. e.keyCode、e.which、e.charCode都代表獲取按鍵碼,但不同的瀏覽器支持不同的寫法 獲取虛鍵 代碼如下: function getKeyCode(e) { var keyCode = 0; var e = e || window.event; if (e.ctrlKey) alert("ctrlKey pressed"); if (e.altKey) alert("altKey pressed"); if (e.shiftKey) alert("shiftKey pressed"); }