Struppi: window.setTimeout mit window.location.href ?!?!

Beitrag lesen

mir ist das richtig peinlich, dass ich an so einer Funktion scheitern muss aber irgendwie ist es mir ein Phänomen:

<script language="JavaScript" type="text/javascript">
<!--

function moveForward(address, time) {
window.setTimeout("window.location.href = address", time);
}

//-->
</script>
<title>PHP - Calendar: Insert Date</title>
</head>
<body>

<input type="button" onClick="moveForward('http://www.thecorp.de', '3000')" value="Forward">

Wieso spuckt mir das Script hier aus "address is undefined." ?
Wenn ich unmittelbar vor dem setTimout den Funktionsaufruf
alert(address);
mache gibt mir das Script doch auch "http://www.thecorp.de" aus...

Guter Ansatz, wenn du noch überprüft hättest was du der Funktion setTimeout übergibst wärst du der Lösung nah gewesen:
alert("window.location.href = address");

address ist aber nur eine lokale Variabel die nur deiner Funktion bekannt ist, da setTimeout aber erst nach 3 Sekunden startet ist deine Funktion mit grossser Wahrscheinlichkeit beendet und damit address nirgendwo mehr definiert.

Du willst den Wert von address zuweisen, dazu musst du ein wenig basteln, da der Wert ein String ist, muss er auch in Anführungszeichen stehen:

window.setTimeout( 'window.location.href = "' + address + '"', time);

Struppi.