Fetz: Probleme mit setTimeout in Schleife

Beitrag lesen

Warum nicht? Auf der verlinkten Seite wird keine anonyme Funktion gezeigt, die tauchen dort seltsamerweise gar nicht auf.

Hallo,

ok, ich drück es mal anders aus. Wenn ich den Tipp mit dem Timer auf mein Beispiel umsetze, sieht das etwa so aus:

function test(i,j) {
 if (j == undefined) {
      i = 0;
   j = 0;
    }
    alert(i);
    alert(j);
    if (i < 1) {
      if (j < 1) {
       j++;
        window.setTimeout("test "+i+" "+j ,1000);
      }
   else {
        j = 0;
     i++;
  if (i < 1) {
          window.setTimeout("test("+i+","+j+")",1000);
  }
   }
    }
  }
  test();

Und siehe da, funktioniert als HTML-Datei mit Javascript einwandfrei. Leider ist bei Benutzung dieses Scriptes in Greasemonkey nach Ausgabe von 0,0 bereits Schluß. Meldung von Firebug: test ist nicht definiert. Und das ist eben das Problem, was im obigen Link erläutert ist. Ich rufe eine Funktion test(i,j) auf. Greasemonkey lässt aber gemäß dem Link nur einen Aufruf von test zu. Dies konnte ich mit Funktionen ohne Parameter (also test() im Vergleich mit test) experimentell bestätigen.

Es hängt also jetzt daran, wie ich einen zeitgesteuerten Funktionsaufruf ohne Parameterübergabe mit Ausgabe von i und j hinbekomme oder wie ich bei Greasemonkey doch Parameter mitgeben kann.

Hintergrund: Ich muss einige Links aufrufen, die sich erst dann aufrufen lassen, wenn zuvor andere Links aufgerufen wurden. Ohne setTimeout klappt das im Prinzip, nur ist es für den Server zu schnell, so dass er sich verschluckt. Mit i und j bilde ich ein zweidimensionales array aus denen ich die Parameter für die Links bilde.
Das ganze geht auch per Hand. Nur brauche ich jedesmal eine dreiviertel Stunde, bis ich alles zusammengeklickt habe. Mit Greasemonkey wäre es automatisiert...

Gruß, Stefan

Hat jemand noch einen Tipp, wie man das hinbekommen kann?

Die Frage ist was?
Dei Skript hat ja mehrere Fehler insofern läßt sihc gar nciht sagen was du genau willst.

Struppi.