2015-04-02 20 views
0

我曾嘗試這樣的代碼:如何使用jscript和jquery提交某個給定條件的請求?

while (true) { 
     $(document).ready(function() { 
      setInterval(function() { 
       if ($("h2").text() == "Qu’est-ce qu’une année-lumière ?") { 
        $("#choice2").delay(200).queue(function() { 
         $(this).click().dequeue() 
        }) 
       } 
      }, 10000) 
     } 

。我的目標實際上是發送一個答案,因爲如果標籤中的元素被驗證,頁面DOM已經準備就緒,那麼我想重複這一點,因爲我在該頁面上。我嘗試了很多代碼,但我的瀏覽器不喜歡它們:它凍結了...這就是爲什麼我嘗試使用間隔,但我無法控制它。請我需要你的幫助...

+1

請格式化您的問題和您的代碼。這是不可讀的。當然你的瀏覽器凍結了,你故意寫了一個無限循環(雖然是真的)。 – 2015-04-02 11:16:03

回答

0

瀏覽器凍結,因爲你有一個無限循環。它只會保持越來越多的綁定事件,直到代碼停止運行時間過長,或者由於綁定了一個zillion事件處理程序而導致瀏覽器崩潰時爲止。

添加間隔是使代碼運行多次的正確舉措,但while循環仍然使其無法工作。

刪除while循環,您的代碼將運行。您不需要將您排隊的函數出列,它將在運行時出列。

$(document).ready(function() { 
    setInterval(function() { 
    if ($("h2").text() == "Qu’est-ce qu’une année-lumière ?") { 
     $("#choice2").delay(200).queue(function() { 
     $(this).click(); 
     }); 
    } 
    }, 10000); 
} 

間隔每隔10秒運行一次代碼,所以在調用點擊之前似乎沒有任何理由等待200 ms。

+0

感謝您的貢獻,我想問一下這個代碼: $(document).ready(function(){ if($(「h2」)。text()==「Qu'est-ce qu'une ANNEE-盧米埃 「){$ (」 其他{} },5000) }; location.reload(真); – franckstifler 2015-04-02 13:30:17

+0

@franckstifler?#選擇2#)點擊() 。} 'ready'方法沒有間隔參數,當頁面被解析時立即重新加載意味着瀏覽器將無限期地重新加載頁面,並且永遠不會實際顯示它。 – Guffa 2015-04-02 14:41:49

+0

謝謝@Guffa .. 。 – franckstifler 2015-04-02 14:45:06

相關問題