Hi Leute ,
mein Problem ist das bei meinem Script die setTimeout Funktion nicht funktioniert. Ich will einen Countdown programmieren bei dem ich die Zeit die Ablaufen soll aus dem eigentlichem HTML-Script bekomme. Also Absolut Variable. Ich weiß nicht ob ich sie falsch geschrieben habe oder nicht. Die Funktion soll sich nach ablauf einer Sekunde wieder selbst aufrufen. Dies geschieht jedoch nicht. Wenn ich die Seite lade habe ich sofort meinen Abspann dort stehen. Außer wenn ich z.B. eine alert("test") vor der Funktion platziere . Dann bekomme ich für jede Sekunde des Programms eine Ausgabe welche jedoch alle zeitlich direkt hintereinander ( obwohl ich erst nach einer Sekunde eine Ausgabe bekommen dürfte) sind. Ich hoffe ihr könnt mir helfen.
Die HTML-Datei beinhaltet:
Die importierte Javascriptdatei heißt decision.js und beinhaltet:
mein Problem ist das bei meinem Script die setTimeout Funktion nicht funktioniert. Ich will einen Countdown programmieren bei dem ich die Zeit die Ablaufen soll aus dem eigentlichem HTML-Script bekomme. Also Absolut Variable. Ich weiß nicht ob ich sie falsch geschrieben habe oder nicht. Die Funktion soll sich nach ablauf einer Sekunde wieder selbst aufrufen. Dies geschieht jedoch nicht. Wenn ich die Seite lade habe ich sofort meinen Abspann dort stehen. Außer wenn ich z.B. eine alert("test") vor der Funktion platziere . Dann bekomme ich für jede Sekunde des Programms eine Ausgabe welche jedoch alle zeitlich direkt hintereinander ( obwohl ich erst nach einer Sekunde eine Ausgabe bekommen dürfte) sind. Ich hoffe ihr könnt mir helfen.
Die HTML-Datei beinhaltet:
PHP:
<html>
<head>
<title></title>
<script type="text/javascript" src="decision.js"></script>
</head>
<body OnLoad="start()">
<div id="time">61</div>
</body>
</html>
Die importierte Javascriptdatei heißt decision.js und beinhaltet:
PHP:
function start()
{
var time = document.getElementById( 'time' ).innerHTML;
timer( time );
}
function timer(time)
{
var h = Math.floor( time / 3600 );
var m = Math.floor( ( time - h * 3600 ) / 60 );
var s = time - h * 3600 - m * 60;
//Stunden
if ( h >= 10 )
{
}
else if( h == 0)
{
h += "0";
}
else
{
h = "0" + h;
}
//Minuten
if ( m >= 10 )
{
}
else if( m == 0)
{
m += "0";
}
else
{
m = "0" + m;
}
//Sekunden
if ( s >= 10 )
{
}
else if( s == 0)
{
s += "0";
}
else
{
s = "0" + s;
}
//fertig
if ( m == 0 && h == 0 && s == 0)
{
document.getElementById( 'time' ).innerHTML= "abgeschlossen";
setTimeout( reload(), 5000 );
}
else
{
document.getElementById( 'time' ).innerHTML = h + ":" + m + ":" + s;
time = time - 1;
document.setTimeout(timer(time),1000);
}
}