1

前几天发现了这个网站。您单击一个 DIV(按钮),它会增加您的积分。

http://clickingbad.nullism.com/

我对自己想,我将只注入 jQuery 并编写一个循环来为我单击使用 Chrome 开发人员控制台并运行类似于以下的代码:

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

但是,它似乎并没有像我想的那样工作。它会像它一样增加第一次命中,但过去什么都没有。您还会看到,当您真正使用鼠标单击时,它会浮动给定的点。以编程方式单击不会。这里发生了什么?

4

3 回答 3

1

您可以使用 setInterval() 并使用 trigger('click')

setInterval(function () {
    $('#make_btn').trigger('click')
}, 1);
于 2013-10-25T15:03:09.907 回答
0

使用trigger()方法:

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

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

或使用triggerHandler()方法

执行附加到事件元素的所有处理程序。

for (var i=0;i<10;i++)
{ 
    $('#make_btn').triggerHandler('click');
}
于 2013-10-25T15:03:19.517 回答
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;
        }
        //...
}
于 2013-10-25T15:27:30.013 回答