элемент доступа setTimeout, который пока недоступен - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь составить хакерский скрипт для нажатия некоторых кнопок на веб-сайте.

У меня есть функция setTimeout, чтобы через некоторое время нажать кнопку.После нажатия кнопки у меня есть больше доступных элементов DOM, которые я должен нажать снова.Ни в коем случае не происходит перезагрузка всей страницы.

Я пробовал следующее

$("#id1").click();
    setTimeout((){
    var button2 = $("#id2");
    button2.click();
    }, 3000);
}, 3000)

id2 изначально недоступно и доступно только после нажатия id1.Поэтому вышеприведенный скрипт не может щелкнуть button 2, так как не смог получить к нему доступ.Как я могу заставить работать вышеперечисленные условия.

1 Ответ

0 голосов
/ 29 сентября 2019

Я кодировал что-то вроде этого. Создайте новый элемент кнопки вручную и установите для функции создания атрибут onclick.Надеюсь, это поможет!

var counter = 1;
var ul = document.getElementById("list");

var btn1 = document.getElementById("id1");
// We've started to clicking 3 sec later!!
setTimeout(function(){
  btn1.onclick = createNewButton;
  btn1.click();
  btn1.setAttribute("disabled",true);
},3000);
// This func create new button elements
// on each button click!!
function createNewButton(){
  if(counter < 5) {
    counter++;
    var li = document.createElement("li");
    var button = document.createElement("button");
    button.setAttribute("id","id"+counter);
    //button.onclick = createNewButton;
    button.innerHTML = counter+".Button";
    li.appendChild(button);
    li.setAttribute("id","element"+counter);
    ul.appendChild(li);
    // Trigger next click event!!
    setTimeout(function(){
      button.onclick = createNewButton;
      button.click();
      button.setAttribute("disabled",true);
    }, 3000);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <ul id="list">
    <li id="element1">
      <button id="id1">1.Button</button>
    </li>
  </ul>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...