js编程实现对于文本框击键行为采集,主要采集同一按键的时间差和两个相邻按键的时间差,要求给出是哪个按键的时间差,两个相邻按键是哪两个,最后将击键行为序列放在一个数组中,要求数组中只有键和值,在最后的数组中能够显性反映出整个击键的过程,并将数组输出出来,
时间: 2024-06-02 19:14:19 浏览: 10
以下是实现代码:
// 初始化
var keyTime = {}; // 记录每个键的最后一次按下时间
var keySequence = []; // 记录击键序列
// 监听键盘按下事件
document.addEventListener('keydown', function(event) {
// 获取按键名称和当前时间
var keyName = event.key;
var currTime = new Date().getTime();
// 计算同一按键的时间差
var timeDiff = 0;
if (keyTime[keyName]) {
timeDiff = currTime - keyTime[keyName];
}
keyTime[keyName] = currTime;
// 计算相邻按键的时间差
var lastKey = keySequence[keySequence.length - 1];
var lastKeyName = lastKey ? lastKey.keyName : null;
var lastKeyTime = lastKey ? lastKey.time : 0;
var adjacentDiff = currTime - lastKeyTime;
// 添加记录到击键序列中
keySequence.push({
keyName: keyName,
time: currTime,
timeDiff: timeDiff,
adjacentDiff: adjacentDiff,
lastKeyName: lastKeyName
});
});
// 输出击键序列
console.log(keySequence.map(function(key) {
return {
keyName: key.keyName,
timeDiff: key.timeDiff,
adjacentDiff: key.adjacentDiff,
lastKeyName: key.lastKeyName
};
}));
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)