Start/Stop-Button mit Script aktivieren

balrog05

Grünschnabel
Hallo zusammen,

habe folgendes Problem: In eine Website will ich ein einfaches Zählwerk einbauen. Das funktioniert auch inzwischen. Jetzt soll die Zählung durch einen Button unterbrochen bzw. wieder fortgesetzt werden können. Das mit dem Button krieg ich irgendwie nicht hin. Der Quelltext sieht folgendermaßen aus:
Code:
<html><head><title>Zählwerk</title>
</head>

<script language="javascript">

var weiter=true;
if(weiter) setTimeout("zaehlen()",1000);

altzeit=new Date();

function zaehlen()
{
var neuzeit=new Date();
differenz=neuzeit.getTime() - altzeit.getTime();
dauer=parseInt(differenz/1000);
document.getElementById("uhr0").innerHTML=dauer;
setTimeout("zaehlen()",1000);
}

window.onload=zaehlen;

</script>

<body bgcolor="#CCCCCC">
<p><font face="Verdana" size="+5"><div align="center"></div>
</font></p>
<br><br><br><br><br>
<p><b><font face="Verdana" size="+7" color="#FF0000"><div align="center"><span id="uhr0"></span></div></font></b></p>
<center><input type="button" onclick="weiter=false" value="stop"></center>
</body>
</html>

Kann mir jemand helfen? Ich bin nicht der Programmier-Guru, wundert mich, das ich überhaupt so weit gekommen bin.
Vielen Dank schon mal.

:confused:
 
Danke für die schnelle Antwort. Das Problem ist aber, jetzt wird die Zählung zwar angehalten, aber wenn ich das Alert-Fenster wieder schließe, setzt das Zählwerk nicht dort wieder ein, wo es onClick stehen geblieben ist, sondern hat im Hintergrund weiter gezählt.

Das Ganze soll so funktionieren: onClick=Zählwerk bleibt stehen (ohne Alert-Fenster), nochmal klicken=Zählung geht weiter (kann auch ein 2. Button sein).

Sorry, wenn ich nerve, bin Netzwerker, kein Programmierer.

<script language="javascript">

var i = 0;
altzeit=new Date();

function zaehlen() {
var neuzeit=new Date();
differenz=neuzeit.getTime() - altzeit.getTime();
dauer=parseInt(differenz/1000);
document.getElementById("uhr0").innerHTML=dauer;
setTimeout("zaehlen()",1000);
}
function Aufhoeren() {
window.clearTimeout(aktiv);
alert(i + " Sekunden");
}

aktiv = window.setTimeout("zaehlen()",1000);

</script>

<body bgcolor="#CCCCCC">
<p><font face="Verdana" size="+5"><div align="center"></div>
</font></p>
<br><br><br><br><br>
<p><b><font face="Verdana" size="+7" color="#FF0000"><div align="center"><span id="uhr0"></span></div></font></b></p>
<center><input type="button" onclick="Aufhoeren()" value="stop"></center>
</body>
 
Zu dem Timeout.... du clearst den Timeout "aktiv" .... innerhalb der Funktion startest du jedoch einen anderen Timeout.... dieser wird nicht gestoppt.

Ansonsten.... die Uhr deines Rechners läuft weiter, somit kannst du neuzeit=new Date() nicht verwenden.

Da du die Sache 1mal pro Sekunde machst, sollte es reichen, wenn du ausserhalb der Funktion eine Variable definierst(Wert:0)... und diese in der Funktion um 1 erhöhst.
 

Neue Beiträge

Zurück