2013-10-25 51 views
1

前些天发现此网站。你点击一个DIV(按钮),它增加让你点数。“预防”Programatic点击元素

http://clickingbad.nullism.com/

我心想我就注入jQuery和写一个循环来点击我使用Chrome开发者控制台,并运行类似下面的代码:

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

但是它不似乎没有像我想的那样工作。它会喜欢它增加第一次击中,但过去没有。你也会看到当你用鼠标点击时,它会浮现给出的点。编程式点击不会。这里发生了什么?

+0

网站使用AJAX来更新服务器上的数据。如果它没有加密每次点击,你可以自己发送相同的Ajax。 – Skarlinski

回答

1

可以

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

使用无论是trigger()方法什么用的setInterval(),并使用触发器(“点击”):

执行附加到了匹配的元素的所有处理程序和行为给定事件类型。

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; 
     } 
     //... 
}