我的功能將鍵盤代碼轉換爲鍵盤按鍵時遇到了一些問題。我原本有一個巨大的開關語句,如果代碼是37,我的程序會輸出「左箭頭鍵」。我的問題是,不同的瀏覽器不會觸發某些按鍵,有時代碼會混淆。例如,運行Chrome的Mac上的shift + 7輸出代碼37,這是一個左箭頭按鍵。火狐在Mac上,如果TAB鍵被按下不告訴我,等從代碼中獲取鍵盤按鍵的jQuery庫
這裏是代碼我正在同:
function getKey(code) {
var keyPress;
// In case of special keys
switch (code)
{
case 8:
keyPress = " backspace ";
break;
case 9:
keyPress = " tab ";
break;
case 13:
keyPress = " enter ";
break;
case 16:
keyPress = " shift ";
break;
case 17:
keyPress = " control ";
break;
case 18:
keyPress = " alt ";
break;
case 20:
keyPress = " caps lock ";
break;
case 27:
keyPress = " escape ";
break;
case 46:
keyPress = " delete ";
break;
case 37:
keyPress = " left arrow key ";
break;
case 38:
keyPress = " up arrow key ";
break;
case 39:
keyPress = " right arrow key ";
break;
case 40:
keyPress = " down arrow key ";
break;
case 45:
keyPress = " insert ";
break;
case 46:
keyPress = " delete ";
break;
case 91:
keyPress = " command ";
break;
default:
keyPress = String.fromCharCode(code);
}
return keyPress;
}
$(document).keypress(function(e) {
var code = e.which;
var keyPress = String.fromCharCode(code);
$(".keystrokes").append(keyPress);
});
因此,是否有任何的jQuery庫,能夠準確地給我正確按下的鍵?
http://stackoverflow.com/questions/2353417/which-is-the-best-javascript-keyboard-event-library-hotkeys-shortcuts –
號我不想聽每次按下某個按鍵時按下特定的按鍵,以獲得按下哪個按鍵。 –
我一定會錯過一些東西,因爲那些聽起來像是完全一樣的東西。或者至少,你可以使用一些庫來做你喜歡的事情,而不是一堆控制流。 –