Hallo Gonza,
for (var i = 0; i < searchArray.length; i++) {
k = 0;
window.setTimeout("bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag)", 1000);
if (j >= maxItems) {break;}
}
zwei Probleme:
1. Wenn du setTimeout innerhalb einer Funktion aufrufst und lokale Variablen verwendest, ist die Funktion beendet, wenn die verzögerte Operation läuft und die Variablen existieren nicht mehr.
Mögliche Abhilfe: globale Variablen.
2. Im Codeschnippsel oben setzt du so schnell wie möglich die Timeouts mit gleicher Verzögerungszeit ab. Sie werden dann nach Ablauf der Verzögerungszeit auch so schnell wie möglich abgearbeitet.
Abhilfe: Führe das Ersetzen in einer Funktion aus, die auch den Zähler (global) erhöht und wenn er noch nicht am Ende ist, ruft die Funktion sich selbst per setTimeout auf.
Also etwa so:
i=0;
function tuwas() {
i++;
if (i<10) window.setTimeout("tuwas()",1000) ;
alert(i);
}
<body onload="tuwas()">
Gruß, Jürgen