Можно ли использовать HTMLElement.click () определенное количество раз? - PullRequest
0 голосов
/ 19 января 2020

У меня есть скрипт для букмарклета ниже, данный мне очень полезным помощником, и я надеялся понять, смогу ли я ограничить сценарий только "нажатием" максимум 25 раз или, возможно, для замедления каждый «щелчок» с каким-то временем ожидания, но где я могу включить это?

javascript:(
  function(){
    document.querySelectorAll(`path[stroke-linecap='round']`).forEach(
      el => {el.parentElement.parentElement.parentElement.click()}
    )
  })
()

1 Ответ

1 голос
/ 19 января 2020

Как-то так?

javascript: (
  function() {
    const arr = [...document.querySelectorAll(`path[stroke-linecap='round']`)];
    const iterations = 25;
    let cnt = Math.min(iterations, arr.length);
    for (let ele of arr) {
      if (cnt-- > 0) ele.parentElement.parentElement.parentElement.click();
      else break;
    }
  })()

Замедление

javascript: (
  function() {
    const arr = document.querySelectorAll(`path[stroke-linecap='round']`);
    const speed = 500; /* milliseconds */
    const iterations = 25;
    let cnt = Math.min(iterations, arr.length);
    const tId = setInterval(function() {
      if (cnt-- <= 0) clearInterval(tId);
      else arr[cnt].parentElement.parentElement.parentElement.click();
    }, 500)
  })()
...