javascript得到键盘keydown和keyup输入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript得到键盘keydown和keyup输入相关的知识,希望对你有一定的参考价值。
我想在客户端进行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事件没有很好地提供?
答案
To answer your question:
这可能是由于WI-FI连接或计算机性能造成的。但我会尝试帮助您优化代码以使其更好地工作
Let's get couple thing out of the way:
- WTH是你的dict变量,它代表什么。请更明确
- 部分: dict [e.keyCode]!= undefined 可以替换为: 字典[e.keyCode]
- 在这个部分: if(dict [e.keyCode]!= undefined && keyarr.indexOf(e.keyCode)!= -1){ //删除keyCode keyarr.splice(keyarr.indexOf(e.keyCode),1); } 您正在查找数组TWICE中键码的索引。将keyarr.indexOf(e.keyCode)存储在局部变量中
以上是关于javascript得到键盘keydown和keyup输入的主要内容,如果未能解决你的问题,请参考以下文章