Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从哪些键捕获键盘事件?_Javascript_Html - Fatal编程技术网

Javascript 如何从哪些键捕获键盘事件?

Javascript 如何从哪些键捕获键盘事件?,javascript,html,Javascript,Html,我在网上搜索并获得了以下代码。然而,当我按下键盘键时,它并没有向我显示警报框。我想知道我在警告框中按下了哪个字符。我该如何解决这个问题 <script type="text/javascript"> var charfield=document.getElementById("char") charfield.onkeydown=function(e){ var e=window.event || e; alert(e.keyCode); } </script> &l

我在网上搜索并获得了以下代码。然而,当我按下键盘键时,它并没有向我显示警报框。我想知道我在警告框中按下了哪个字符。我该如何解决这个问题

<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>

var charfield=document.getElementById(“char”)
charfield.onkeydown=函数(e){
var e=window.event | e;
警报(如钥匙代码);
}

您将获得相应的密钥代码:

charfield.onkeydown=function(evt){
    var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0))
    alert(keyCode);
}
试试这个jquery代码

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

如果要键入字符,必须使用
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));
    }
};

我想不出在什么情况下使用DOM元素的“on some event”方法来处理该元素上的事件

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

如果您还想说明
附件事件

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

function alertKeyCode(e) {
    alert(e.keyCode);
}
也许这会有帮助:
(function (useListen) {
    if (useListen) {
        charfield.addEventListener('keydown', alertKeyCode, false);
    } else {
        charfield.attachEvent('onkeydown', alertKeyCode);
    }
})(charfield.addEventListener);

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