Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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_Dom Events - Fatal编程技术网

Javascript 在按住另一个键的同时返回按键

Javascript 在按住另一个键的同时返回按键,javascript,dom-events,Javascript,Dom Events,因此,我需要的是能够按住空格键,脚本需要重复发送空格键的垃圾邮件,就好像我是通过点击来完成的一样 我已经写了一些代码,但我不能让它像我想要的那样工作 document.addEventListener("keydown", function(event) { if (event.keyCode == 32) { var i = 0; setInterval(() => { var e = document.createEvent('HT

因此,我需要的是能够按住空格键,脚本需要重复发送空格键的垃圾邮件,就好像我是通过点击来完成的一样

我已经写了一些代码,但我不能让它像我想要的那样工作

document.addEventListener("keydown", function(event) {
  if (event.keyCode == 32) {

      var i = 0;
       setInterval(() => {
           var e = document.createEvent('HTMLEvents');
           e.keyCode = 32;
           e.initEvent(++i % 2 > 0 ? 'keyup' : 'keydown', false, true);
           window.dispatchEvent(e);
      }, 35);
  }
});
所以基本上这是可行的,当我按下空格键时,它会反复上下按下空格键,但是当我松开空格键时它不会停止,但是直到我按下空格键它才真正启动,这意味着它在某种程度上工作

我知道问题出在这行
e.initEvent(++I%2>0?'keyup':'keydown',false,true)

但实际上我已经从另一个项目中恢复了这段代码,但我不知道它在做什么或如何做


有人有什么建议吗?

不确定这是否是您需要的。看一看。事件具有repeat属性

let test=1;
设temp=document.querySelector('.test');
temp.innerHTML=测试;
文档.添加的事件列表器(“键控”,函数(事件){
如果(event.keyCode==32){
console.log(事件重复);
测试+=1;
temp.innerHTML=测试;
}
});

不确定这是否是您需要的。看一看。事件具有repeat属性

let test=1;
设temp=document.querySelector('.test');
temp.innerHTML=测试;
文档.添加的事件列表器(“键控”,函数(事件){
如果(event.keyCode==32){
console.log(事件重复);
测试+=1;
temp.innerHTML=测试;
}
});


我已经仔细研究了这个问题,但我不确定在释放空格键之前如何将其反复实现为keyup-keydown。我已经仔细研究了这个问题,但不确定在释放空格键之前如何将其反复实现为keyup-keydown。我假设这会将空格键发送到某种控制台(我对java不太了解)我需要它向我需要的游戏发送一个空格键(模拟用户反复跳跃),就像我只是多次按下空格键一样。@SkylerKing更新了我的Answare。如果你一直按空格键,它就会一直触发。这可能对你有用。看一下代码。在按住空格键的同时,它似乎在不断重复空格键,这正是我想要的,但我需要它转换为发送到我正在制作的游戏中的实际按键。因此,我考虑了更多,也许如果我为keyup添加一个EventListener以停止运行之前的函数,这行得通吗?我假设它将空格键发送到某种控制台(我对java不太了解),我需要它向我需要的游戏发送空格键(模拟用户反复跳跃)“就像我只是多次按下空格键一样。”SkylerKing更新了我的答案。如果你一直按空格键,它就会一直触发。这可能对你有用。看一下代码。在按住空格键的同时,它似乎在不断重复空格键,这正是我想要的,但我需要它转换为发送到我正在制作的游戏中的实际按键。因此,我考虑了更多,也许如果我为keyup添加一个EventListener以停止运行之前的函数,这样做行得通吗?只需要保留原始代码就行了吗?