2017-04-16 1 views
0

Greasemonkey에 스크립트가있어 단추가 있는지 확인한 다음 클릭하십시오. 그 밖의 경우 페이지를 다시로드하십시오.Greasemonkey-Script에서 페이지 다시로드가 중지되지 않습니다. 뭐가 문제 야?

문제점 : 단추를 찾아 올바르게 클릭했습니다. 페이지가 더 이상 다시로드되지 않아야하지만 다시로드하고 다시로드해야합니다.

무엇이 잘못 될 수 있습니까 ???? 여기

내 스크립트의 코드 : 요소 세트 이상

(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

당신 루프, 그 중 은 "페이지를 클릭하거나 다시로드"않습니다. 즉, 하나의 요소가 모두 해당 버튼의이 아니라면 페이지를 새로 고침해야합니다.

이를 대고 return element.click() 후, 버튼을 발견, 루프에 대한 함수에서 반환하지 않고 종료 경우에만 호출 될 수 있도록, for 루프 후 location.reload()를 넣어 경우 전체 기능을 종료 할 수 있도록.

+0

고마워 ..... 그게 효과가 있었어. – DadaRada

+0

더 중요한 점은 다음과 같습니다. 왜 작동하는지, 그리고 왜 코드가 작동하지 않는지 이해하십니까? 그렇지 않다면, 나는 당신이 코드에'console.log' 및/또는'debugger' 문을 넣어서 어떤 조건 하에서 어떤 것이 실행되는지 살펴 보길 부탁드립니다. – Siguza

+0

네, 이해합니다. 루프가 재로드되어 모든 "i"에 대해 다시로드되므로 fullfilled가 아닌 경우 다시로드됩니다. 이제 fullfilled 경우 루프를 중지하고 다시로드 루프 후 모든 단일 루프가 아닙니다. 내가 맞습니까? – DadaRada

관련 문제