zloeeskimo
@zloeeskimo
Программист 1С и чуть-чуть шарящий в вебе :)

Как осуществить функцию Click() по динамически созданной кнопке?

Доброго времени суток! Собственно, по порядку:
1. Пытаюсь написать скрипт для определённого сайта, который запускался бы из консоли Chrome
2. На этом сайте, в неопределённое время, генерируется необходимый мне , мне удалось его поймать используя get по имени класса (в элементе прописан только класс и innerHTML), а вот нажать функцией click() не получается.

Понимаю, что вся проблема в том, что это динамический элемент и с ним нужно что-то сделать прежде чем выполнять click(), но что именно нужно сделать - понимания нет :)

Прикладываю, то, что уже работает (ожидание появления элемента и его поиск):

let ButtonEnter;
let MyTimer = setInterval(function SearchMyButton() {
ButtonEnter = document.getElementsByClassName('EtoKnopka');
if (ButtonEnter[0] != null) {
ButtonEnter[0].click();
console.log('Кнопка найдена!');
clearInterval(MyTimer);
}
});
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
kocherman
@kocherman
function eventFire(el, etype){
  if (el.fireEvent) {
    el.fireEvent('on' + etype);
  } else {
    var evObj = document.createEvent('Events');
    evObj.initEvent(etype, true, false);
    el.dispatchEvent(evObj);
  }
}


Использование:
eventFire(document.querySelector('.EtoKnopka'), 'click');


Используйте
document.querySelector() 
document.querySelectorAll()

вместо
document.getElementsByClassName()
document.getElementById() 
document.getElementsByTagName()


А то эти методы делают код совсем мамонтовым.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы