如何重复javascript点击功能

时间:2019-06-28 16:46:19

标签: javascript google-chrome

长期读者第一次海报。 我对此完全陌生。 如何制作“ ele.click();”重复一次,然后重复一次,因此与其触发一次,不如按一次Z键连续发射5次。 预先谢谢你

(function(tags) {
    tags = ["INPUT", "SELECT", "TEXTAREA"];
    addEventListener("keydown", function(ev, ele) {
        if (ev.shiftKey || ev.ctrlKey || ev.altKey || tags.includes(ev.target.tagName)) return;
        switch (ev.key.toUpperCase()) {
            case "Z": // test
                if (ele = document.querySelector(".CLASS")) ele.click();
                break;
        }
    });
})();

2 个答案:

答案 0 :(得分:-1)

您可以创建一个将元素作为参数的外部函数。然后您每次调用element.click

可以循环5次。
function clickNtimes(element, n) {
 for (var i=0; i<n; i++) {
  element.click();
 }
}

然后您可以在代码中调用此函数,例如:

(function(tags) {
    tags = ["INPUT", "SELECT", "TEXTAREA"];
    addEventListener("keydown", function(ev, ele) {
        if (ev.shiftKey || ev.ctrlKey || ev.altKey || tags.includes(ev.target.tagName)) return;
        switch (ev.key.toUpperCase()) {
            case "Z": // test
                if (ele = document.querySelector(".CLASS")) clickNtimes(ele,5);
                break;
        }
    });
})();

如果要在两次点击之间增加延迟,可以使用setInterval()。

function clickNtimes(element, n) {
  let index = 0;
  function click() {
    element.click();
    index++;
    if (index === n) {
      clearInterval(this);
    }
  }
  const clickInterval = setInterval(click, 1000);
}

答案 1 :(得分:-1)

我看不到它的真正用途,但是我这样看:

通过点击传递希望的通话次数作为参数,例如:“ ele.click(5);”

然后,在您的函数中执行以下操作:

nameFunction(times) {
    let done = 0;
    while(times > done) {
        done++;
        // do your logic
    }
}