gpt4 book ai didi

javascript - 使用javascript如何记录键盘事件?

转载 作者:行者123 更新时间:2023-11-28 16:01:32 25 4
gpt4 key购买 nike

<input type="text"></input>

<script>
var a = document.getElementsByTagName('input')[0];
a.onkeypress = function(evt) {
this.evt = evt || event;
var b = String.fromCharCode(evt.keyCode);
while(forEach(evt) {
alert("You pressed " + b);
}
};
</script>

这似乎不起作用。当用户按下某个键时,它应该始终提醒该键。这里的浏览器是Chrome。

最佳答案

它不起作用,因为您正在调用一个未定义的函数 (forEach),此处:

while(forEach(evt) {
// ^

如果您查看 JavaScript 控制台,您会看到与此相关的错误。

此外,您不想分配给 this 上的 evt 属性:

this.evt = evt || event; // <== Don't do this

只需使用参数:

evt = evt || event;

如果您要单独提醒每个按键,则没有理由循环。

此外,input 元素没有结束标记。它应该只是:

<input type="text">

或(在 XHTML 中,也可以在 HTML 中):

<input type="text"/>

:

<input type="text"></input>

最后,请注意,某些浏览器使用 which 作为键码,其他浏览器使用 keyCode。您可以使用 || 来使用浏览器提供的任何内容:

String.fromCharCode(evt.which || evt.keyCode)

这是一个最小更新:Live Copy | Live Source

<input type="text">
<script>
var a = document.getElementsByTagName('input')[0];
a.onkeypress = function(evt) {
evt = evt || event;
alert("You pressed " + String.fromCharCode(evt.which || evt.keyCode));
};
</script>

关于javascript - 使用javascript如何记录键盘事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16831788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com