Имитация клика мыши
Привет, спецы! Как начинающий, прошу помощи. Делаю редирект на сайт, на странице которого нужно кликнуть по кнопке "Продолжить", после которого будет осуществлен переход на другой нужный мне сайт. Вопрос. Можно ли в моем сайте организовать программно имитацию физического клика мыши, чтобы процесс перехода осуществлялся автоматически с небольшой задержкой? Спасибо.
|
Ну вот к событию onclick кнопки привязывается функция. Вызвать просто эту функцию да и все. Если ее нет, т.е. написано вот так:
b1.onclick = function(){}; где b1 это <input type="button" id="b1"><input> то создайте ее, т.е. напишите вот так: b1.onclick = bc; function bc(){}; |
igommon,
Для программного вызова события используется метод trigger http://jquery.page2page.ru/index.php...82%D0%B8%D1%8F |
Спасибо, друзья! Буду пробовать.
|
igommon,
С использованием jQuery - все просто, $(".селектор").click(); или $(".селектор").trigger("click"); |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
у меня получается после каждого клика страница перегружается, хотелось бы одновременный клик реализовать
|
flyte,
сделайте минимальный макет |
Цитата:
|
Цитата:
в том то и дело, у меня есть 20 картинок и соответственно 20 input type="submit" для удаления их, на сайте я ничего менять не могу, делаю надстройку в greasmonkey чтобы одним кликом удалять все сразу, а не по одной, или это не реально реализовать? |
flyte, найдите общий для всех кнопок селектор и в цикле кликните по каждой, как-то так:
[].forEach.call(document.querySelectorAll('.button'),function(node){ node.dispatchEvent(new Event('click')); }); Если на клиенте сделано так, что нельзя одновременно отправить на сервер несколько запросов, то так просто не выйдет. Пример: <button type="button" class="remove">Кнопка 1</button> <button type="button" class="remove">Кнопка 2</button> <button type="button" class="control">Кликнуть по обеим</button> <script> (function(){ let inProcess=false; const buttons=[].slice.call(document.querySelectorAll('.remove')); buttons.forEach(function(node){ node.addEventListener('click',function(){ alert(this.textContent+' нажата'); if(inProcess) return; inProcess=true; setTimeout(function(that){ that.parentNode.removeChild(that); alert(that.textContent+' удалена'); inProcess=false; },1000,this); }); }); })(); document.querySelector('.control').addEventListener('click',function(){ [].forEach.call(document.querySelectorAll('.remove'),function(node){ node.dispatchEvent(new Event('click')); }); }); </script> |
Цитата:
но, если добавить alert в Ваш код, то получается пока страница перегружается можно 20 раз кликнуть на него и тогда удаляется все [].forEach.call(document.querySelectorAll('.button'),function(node){ node.dispatchEvent(new Event('click')); alert ('Delete'); }); может что-то можно придумать? |
Часовой пояс GMT +3, время: 02:46. |