2013-10-25 3 views
1

Этот сайт был обнаружен на днях. Вы нажимаете кнопку DIV (кнопка), и она увеличивает ваши очки."Предотвратить" Программный щелчок по элементу

http://clickingbad.nullism.com/

Я подумал про себя, я просто впрыснуть Jquery и написать цикл щелкнуть для меня использовать консоль разработчика Chrome и запустить код, подобный следующему:

for (var i=0;i<10;i++) 
{ 
    $('#make_btn').click(); 
} 

Однако это Безразлично Кажется, я работаю так, как я думаю. Это будет похоже на то, что он увеличивает первый удар, но ничего не происходит. Также вы увидите, когда вы активно используете мышь, чтобы щелкнуть, она плавает в точках. Программный щелчок не работает. Что тут происходит?

+0

Сайт использует Ajax для обновления данных на сервере. Если он не зашифрован за клик, вы можете просто отправить один и тот же ajax. – Skarlinski

ответ

1

Вы можете использовать setInterval() и использовать триггер ('щелчок')

setInterval(function() { 
    $('#make_btn').trigger('click') 
}, 1); 
0

, что с помощью либо trigger() метод:

Execute все обработчики и поведения, прикрепленные к совпавших элементов для тип события.

for (var i=0;i<10;i++) 
{ 
    $('#make_btn').trigger('click'); 
} 

или использовать метод triggerHandler()

Выполнить все обработчики прикрепленные к элементу для события.

for (var i=0;i<10;i++) 
{ 
    $('#make_btn').triggerHandler('click'); 
} 
0

Просто оригинальная функция манипулируют некоторое свойство события, что просто trigger('click') не пройти.

Попробуйте

var e = jQuery.Event("click"); 
e.pageX = e.pageY = 140; 
for (var i=0;i<100;i++) 
{ 
    setTimeout(function() {$('#make_btn').trigger(e)},100*i); 
} 

setTimeout для хорошего эффекта и для того, чтобы предотвратить эту проверку на сайте разработчика (от исходного кода страницы)

this.do_make_click = function() { 
     var nw = (new Date).getTime(); 
     if((nw - last_click) < 70) { 
      return false; 
     } 
     //... 
} 
Смежные вопросы