簡體   English   中英

如何捕獲鍵盤事件來自哪些鍵?

[英]How can I capture keyboard events are from which keys?

我在網上搜索並獲得了以下代碼。但是,當我按下鍵盤鍵時,它沒有向我顯示警報框。 我想知道我在警告框中按下了哪個字符。 我該如何解決?

<script type="text/javascript">

var charfield=document.getElementById("char")
charfield.onkeydown=function(e){
var e=window.event || e;
alert(e.keyCode);
}

</script>
</head>

<body id="char">

</body>
</html>

如果要輸入字符,則必須使用keypress事件而不是keydown事件。 類似於以下內容:

var charfield = document.getElementById("char");
charfield.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode > 0) {
        alert("Typed character: " + String.fromCharCode(charCode));
    }
};

試試這個 jquery 代碼

  $("body").keypress(function(e){
        alert(e.which);
    });

我想不出一個好的情況,在這種情況下使用 DOM 元素的“on some event”方法來處理該元素上的事件。

最佳做法是使用addEventListener (或舊版本 Internet Explorer 中的attachEvent ),如下所示:

charfield.addEventListener('keydown', function (e) { alert(e.keyCode); }, false);

如果您還想考慮attachEvent

(function (useListen) {
    if (useListen) {
        charfield.addEventListener('keydown', alertKeyCode, false);
    } else {
        charfield.attachEvent('onkeydown', alertKeyCode);
    }
})(charfield.addEventListener);

function alertKeyCode(e) {
    alert(e.keyCode);
}

您將獲得相應的密鑰代碼:

charfield.onkeydown=function(evt){
    var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0))
    alert(keyCode);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM