Ich würde gerne eine Methode schreiben, die von einem String (einem Satz oder Wort, im Prinzip hier nicht relevant) in einem bestimmten Zeitabstand nacheinander alle Zeichen auf dem Bildschirm ausgibt, Beginn beim 1. Zeichen. Der Zeitabstand soll beliebig manipulierbar sein. Habe bisher folgenden Quelltext:
<html>
<head>
<title>bla</title>
<script type="text/javascript">
var satz = "Zwei Buchstaben pro Sekunde";
var buchst = satz.split("");
var i = 0;
var a = satz.length;
function f(){
if (i<a){
document.write(buchst);
i = i+1;
document.setTimeout(f(), 500);
}else{
}
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<input type="button" value="Textausgabe"
onclick="f()"
</body>
</html>
Problem: Diese Funktion gibt zwar rekursiv den Inhalt der var satz Schritt für Schritt wieder, scheint jedoch die Methode setTimeout buchstäblich zu übersehen. Wenn man in der Timeout-Methode die Funktion f() in Anführungsstriche setzt- document.setTimeout("f()", 500); -, bleibt das Programm bereits vor dem ersten rek. Funktionsaufruf hängen. Darf man die setTimeout-Methode nicht in eine function() einbetten??
Würde mich über jede Idee freuen, die irgendwie zum Ziel führt.
<html>
<head>
<title>bla</title>
<script type="text/javascript">
var satz = "Zwei Buchstaben pro Sekunde";
var buchst = satz.split("");
var i = 0;
var a = satz.length;
function f(){
if (i<a){
document.write(buchst);
i = i+1;
document.setTimeout(f(), 500);
}else{
}
}
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<input type="button" value="Textausgabe"
onclick="f()"
</body>
</html>
Problem: Diese Funktion gibt zwar rekursiv den Inhalt der var satz Schritt für Schritt wieder, scheint jedoch die Methode setTimeout buchstäblich zu übersehen. Wenn man in der Timeout-Methode die Funktion f() in Anführungsstriche setzt- document.setTimeout("f()", 500); -, bleibt das Programm bereits vor dem ersten rek. Funktionsaufruf hängen. Darf man die setTimeout-Methode nicht in eine function() einbetten??
Würde mich über jede Idee freuen, die irgendwie zum Ziel führt.