2013-10-25 95 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; 
     } 
     //... 
}