for-Schleife und setTimeout

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • for-Schleife und setTimeout

    Hallo!
    Ich möchte gerne folgendes Javascript als for-Schleife schreiben:

    Code:
    <SCRIPT LANGUAGE="JavaScript">
    var MeineURLs = new Array;
    MeineURLs[0] = 'http://www.yahoo.de';
    MeineURLs[1] = 'http://www.fireball.de';
    MeineURLs[2] = 'http://www.n24.de';
    MeineURLs[3] = 'http://www.ard.de';
    var MeineZufallszeiten = new Array;
    MeineZufallszeiten[0] = 5000;
    MeineZufallszeiten[1] = 10000;
    MeineZufallszeiten[2] = 2000;
    MeineZufallszeiten[3] = 6000;
    
    function eins(URL) {
    	document.getElementById("textfeld").innerHTML = URL;
       	setTimeout("zwei(MeineURLs[1])", MeineZufallszeiten[1]);
    }
    function zwei(URL) {
    	document.getElementById("textfeld").innerHTML = URL;
       	setTimeout("drei(MeineURLs[2])", MeineZufallszeiten[2]);
    }
    function drei(URL) {
    	document.getElementById("textfeld").innerHTML = URL;
       	setTimeout("vier(MeineURLs[3])", MeineZufallszeiten[3]);
    }
    function vier(URL) {
    	document.getElementById("textfeld").innerHTML = URL;
       	ende();
    }
    function ende() {
    		document.getElementById("textfeld").innerHTML = 'Alle Funktionen wurden ausgeführt!';
    }
    function play() {
    	document.getElementById("textfeld").innerHTML = 'Funktion play wird ausgeführt!';
       	setTimeout("eins(MeineURLs[0])", MeineZufallszeiten[0]);
    }
    </SCRIPT>
    Ich benötige die for-Schleife, da die Arrays später dynamisch aus einer Datenbank erzeugt werden. Ich habe es schon mehrere Male probiert, allerdings "springt" er meistens direkt zur letzten URL ohne das setTimeout zu beachten.
    Für Tipps wie ich dieses Problem lösen kann bin ich sehr dankbar!
    Viele Grüße von Jan

  • #2
    Manchmal geht es doch einfacher als man denkt:

    Code:
    <script language ="JavaScript">
    var MeineURLs = new Array;
    MeineURLs[0] = 'http://www.yahoo.de';
    MeineURLs[1] = 'http://www.fireball.de';
    MeineURLs[2] = 'http://www.n24.de';
    MeineURLs[3] = 'http://www.ard.de';
    var MeineZufallszeiten = new Array;
    MeineZufallszeiten[0] = 5000;
    MeineZufallszeiten[1] = 8000;
    MeineZufallszeiten[2] = 4000;
    MeineZufallszeiten[3] = 6000;
    i=0;
    function play() {
    if(i<MeineURLs.length) {
    	document.getElementById("textfeld").innerHTML = MeineURLs[i];
      	i = i + 1;
      	window.setTimeout("play()",MeineZufallszeiten[i]);}
    }
    </SCRIPT>
    Trotzdem würde mich interessieren, warum das nicht in einer for-Schleife geht...
    Zuletzt geändert von Wantonio; 03.03.2005, 16:34.

    Kommentar

    Lädt...
    X