首页 > 解决方案 > 在按住另一个键的同时返回一个键

问题描述

所以我需要的是能够按住spacebar键,并且脚本需要反复向spacebar键发送垃圾邮件,就好像我是通过点击一样。

我已经编写了一些代码,但我无法让它像我想要的那样工作。

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);
  }
});

所以基本上这是有效的,当我按下它时spacebar它反复按下spacebar向上和向下,但是当我释放空格键时它并没有停止这样做,但是直到我按下它才真正开始,spacebar这意味着它有点工作。

我知道问题出在这条线上e.initEvent(++i % 2 > 0 ? 'keyup' : 'keydown', false, true);

但我实际上已经从另一个项目中恢复了这段代码,但无法弄清楚它在做什么或如何做。

有没有人有什么建议?

标签: javascriptdom-events

解决方案


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

let test = 1;
let temp = document.querySelector('.test');
temp.innerHTML = test;


document.addEventListener("keydown", function(event) {
  if (event.keyCode == 32) {
    console.log(event.repeat);
    test += 1;
    temp.innerHTML = test;
  }
});
<div class = 'test'>

<div>


推荐阅读