gpt4 book ai didi

javascript 获取键盘 keydown 和 keyup 输入

转载 作者:行者123 更新时间:2023-11-28 03:50:16 26 4
gpt4 key购买 nike

我想在客户端执行 keydown 或 keyup 时发送服务器。

但是,有时效果不佳。当我将手放在键盘上时,它会错过一些事件,并且“键盘数组”不会[]。

我制作了“键盘数组”来查找重复输入,当窗口未聚焦时我对其进行了初始化。这是我的代码。

var keyarr = [];
window.onkeyup = function(e){
if(keyarr.indexOf(e.keyCode) != -1) {
//delete keyCode
keyarr.splice(keyarr.indexOf(e.keyCode),1);
//websocket.send(keycode);
}
}
window.onkeydown = function(e){
//check keyCode available
if(!e.repeat && keyarr.indexOf(e.keyCode) == -1) {
//add keyCode
keyarr.push(e.keyCode);
//websocket.send(keycode);
}
}
window.onblur = function(){
keyarr = [];
//websocket.send(keycode);
}

为什么某些 keydown 和 keyup 事件传递得不好?

最佳答案

回答您的问题:

这可能是由于 WI-FI 连接或计算机性能造成的。但我会尽力帮助您优化代码,使其更好地工作

让我们解决一些问题:

  • WTH 是您的 dict 变量,它代表什么。请说得更明确
  • 各部分:

    dict[e.keyCode] != undefined

    可以替换为:

    dict[e.keyCode]

  • 在本节中:

    if(dict[e.keyCode] != undefined && keyarr.indexOf(e.keyCode) != -1) {
    //delete keyCode
    keyarr.splice(keyarr.indexOf(e.keyCode),1);
    }

    您正在数组中查找键码索引两次。将 keyarr.indexOf(e.keyCode) 存储在局部变量中

关于javascript 获取键盘 keydown 和 keyup 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48056517/

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