2017-04-16 31 views
0

我在Greasemonkey中編寫了一個腳本來檢查一個按鈕是否存在,然後點擊它。 否則重新加載頁面。頁面重新加載不會停止在Greasemonkey腳本中。怎麼了?

問題:找到並正確單擊按鈕。該頁面不應該重新加載,而是繼續重新加載和重新加載。

什麼可能是錯誤的?

這裏是我的腳本代碼:

(function() { 
 
    'use strict'; 
 

 
    var zeilen = document.getElementsByClassName('content-card-entry fcb-row fcb-clear'); 
 
    for (var i = 0; i < zeilen.length; i++) { 
 
     var zeile = zeilen[i]; 
 
     // Zeile mit Block 
 
     if (zeile.children[0].children[0].innerHTML == "247") 
 

 
     { 
 

 
      //Den String der ID auslesen 
 
      var IDString = zeile.children[0].children[0].id; 
 
      //Den Identifikationsstring ctlxxx auslesen 
 
      var ClickID = IDString.substr(42, 5); 
 

 
      //Den ClickString zusammenbauen 
 
      var anfang = "ctl00_ContentMiddle_TicketList1_GridView1_"; 
 
      var ende = "_LinkButton1"; 
 
      var clickstring = anfang+ClickID+ende; 
 

 
      //Den Button suchen 
 
      var element = document.getElementById(clickstring); 
 

 

 
      //Wenn der Button vorhanden ist klicken und mir eine Nachricht senden 
 
      
 
      
 
      element.click(); 
 
      
 
} 
 
else 
 
\t { 
 
\t \t location.reload(); 
 
\t } 
 
\t } \t 
 
    
 
\t 
 
})();

回答

0

您遍歷一組元素,並做「點擊或重新載入頁面」每個他們。這意味着除非每一個這些元素是你正在尋找的按鈕,你會重新加載頁面。

將一個element.click()return,因此,如果該按鈕被發現,並把location.reload()後的for循環,因此,如果不從函數返回的for循環終止它只是叫你的整個函數退出。

+0

非常感謝.....有效。 – DadaRada

+0

更重要的一點是:你明白它爲什麼起作用,爲什麼你的代碼不是?如果沒有,我強烈建議你在你的代碼中加入'console.log'和/或'debugger'語句來查看在哪些條件下執行了什麼。 – Siguza

+0

是的,我明白。我在循環中重新加載,所以當if沒有滿時,它會爲每個「我」重新加載。現在我停止循環時,如果是fullfilled和重新加載循環後,而不是在每一個單一的循環。我對嗎? – DadaRada

相關問題