Нажать на кнопки после полной загрузки страницы
Добрейшего денечка Господа.
На сайте есть несколько кнопок (количество может быть любым) <input type="button" class="ays_next start_button action-button" value="Начать">нужно после полной загрузки страницы нажать по 1 разу на эти кнопки.. Важно На сайте есть точно такие же кнопки (с такими же атрибутами и классами) но с другим текстом - Важно нажать на все кнопки именно с class="ays_next start_button action-button" и value="Начать" Заранее премного вам благодарен. |
window.onload = () => { document.querySelectorAll('input.ays_next.start_button.action-button[value="Начать"]') .forEach(b => b.click()); } |
Цитата:
Или может можно выполнить его исключительно после того, как все скрипты на странице отработали уже? |
Цитата:
|
как то странно работает очень...
Если пишу window.onload = () => { document.querySelectorAll('input.ays_next.start_button.action-button[value="Начать"]') .forEach(b => b.click()); } То по человечески срабатывает только клик по первой кнопке, а еси пишу window.onload = () => { document.querySelectorAll('input.ays_next.start_button.action-button[value="Начать"]') .forEach(b => b.click()); } window.onload = () => { document.querySelectorAll('.calck_quiz_nav input.ays_next.start_button.action-button[value="Начать"]') .forEach(c => c.click()); } т.е. вторым скриптом указываю на вторую кнопку, то он выполняет только клик по 2й кнопке... :( |
А что должно происходить при кликах по кнопкам ?
Цитата:
|
Цитата:
Цитата:
|
Цитата:
addEventListener |
Цитата:
Цитата:
Функция click() - синхронная. Пока полностью не отработает обработчик события дальше не пойдет. Т.е пока полностью не отработает обработчик нажатия первой кнопки, не будет выполняться click() для второй и следующих. Что происходит в этих обработчиках - надо разбираться с библиотекой. |
Цитата:
Цитата:
Причем в плагине есть возможность включить автозапуск квиза, но там как раз есть пометка, что он будет работать только в том случае, если квиз всего 1 на странице. Вот хотелось бы обойти все это.. |
Цитата:
Вообще не включается? Включается, но нет изображения (черный экран)? Экран светится, но картинки нет (рябь на экране)? Картинка есть, но нет звука? ..... ..... Здесь тоже самое. Что именно происходит? Сообщения об ошибках? До второго клика дело вообще не доходит? Второй (и последующие) клики проходят, но DOM на этих кнопках не меняется? DOM меняется, но неправильно? ...... ...... |
Цитата:
Первый клик проходит как положено - все супер, 2й и последующий клик будто не проходят но там есть возможность в каждом квизе включить прогресс бар который имеет абсолютное позиционирование и просто скрыт до появления квиза (до нажатия кнопки), так вот включив его, я понял что клики проходят, так как появляется этот прогрессбар, но вот кнопка не исчезает и квиз не появляется - получается, что все клики кроме первого проходят но DOM меняется неправильно... |
Может быть плагин не позволяет одновременно обрабатывать несколько кликов. Можно попробовать (проверить это), выполняя клики не сразу, а с временной задержкой, скажем в 3 сек.
window.onload = () => { bts = document.querySelectorAll('input.ays_next.start_button.action-button[value="Начать"]') let i=0, n = bts.length; const bclick = () => { bts[i++].click(); if (i<n) setTimeout(bclick, 3000); } bclick(); } |
Цитата:
Круто, кровью и потом именно этот способ сработал! Спасибо большое!! :dance: |
Тут дело не в задержке после загрузки страницы, а именно в задержке между кликами. Вероятно плагин запускает какие то асинхронные операции, и написан так, что не может правильно выполнить следующую, пока не закончилась предыдущая.
|
Понял, благодарю! В любом случае, вышло простое и отличное решение..
|
Часовой пояс GMT +3, время: 18:20. |