Avatar billede agerled Nybegynder
19. oktober 2003 - 13:16 Der er 9 kommentarer og
1 løsning

counter skal stoppe ved nul og hente en side

Hej. Jeg bruger en counter der tæller ned til en bestemt dato:

<script>
function countdown()
{
ThisDate=new Date();
targetyear=2003;
targetmonth=10;
targetdate=20;
targethour=15;
targetminute=0;
targetsecond=0;
SecondsLeft=targetsecond-ThisDate.getSeconds();
t=0;if (SecondsLeft<0) {t=1; SecondsLeft=60+SecondsLeft;}
MinutesLeft=targetminute-ThisDate.getMinutes()-t;
t=0;if (MinutesLeft<0) {t=1; MinutesLeft=60+MinutesLeft;}
HoursLeft=targethour-ThisDate.getHours()-t;
t=0;if (HoursLeft<0) {t=1; HoursLeft=60+HoursLeft;}
DaysLeft=targetdate-ThisDate.getDate()-t;
t=0;if (DaysLeft<0) {t=1; DaysLeft=60+DaysLeft;}
MonthsLeft=targetmonth-ThisDate.getMonth()-t-1;
t=0;if (MonthsLeft<0) {t=1; MonthsLeft=60+MonthsLeft;}
YearsLeft=targetyear-ThisDate.getYear()-t;
//document.forms.countdownform.T1.value=YearsLeft;
//document.forms.countdownform.T2.value=MonthsLeft;
//document.forms.countdownform.T3.value=DaysLeft;
document.forms.countdownform.tid.value='Dage: ' + DaysLeft + ', Timer: ' + HoursLeft +', Min.: ' +MinutesLeft+ ', Sek.: ' + SecondsLeft ;
//document.forms.countdownform.T5.value=MinutesLeft;
//document.forms.countdownform.T6.value=SecondsLeft;
CountDownId=setTimeout("countdown()",1000);
}

</script>

Nedtællingen udskrives i form på siden.

Er der nogen der ved hvordan jeg får counteren til at stoppe ved nul istedet for at tælle videre med "-"foran tallene?? .....Samtidig vil jeg gerne have counteren til at hente en anden side når den når til nul???

Nogen derved hvordan? Eller om det overhovedet er muligt?
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 13:47 #1
<html>
<head>
<script>
function countdown() {
    if (document.forms.countdownform.tid.value=='Dage: 0, Timer: 0, Min.: 0, Sek.: 0') {
        alert("nu!");
    }
    else {
        ThisDate=new Date();
        targetyear=2003;
        targetmonth=10;
        targetdate=19;
        targethour=13;
        targetminute=47;
        targetsecond=0;
        SecondsLeft=targetsecond-ThisDate.getSeconds();
        t=0;if (SecondsLeft<0) {t=1; SecondsLeft=60+SecondsLeft;}
        MinutesLeft=targetminute-ThisDate.getMinutes()-t;
        t=0;if (MinutesLeft<0) {t=1; MinutesLeft=60+MinutesLeft;}
        HoursLeft=targethour-ThisDate.getHours()-t;
        t=0;if (HoursLeft<0) {t=1; HoursLeft=60+HoursLeft;}
        DaysLeft=targetdate-ThisDate.getDate()-t;
        t=0;if (DaysLeft<0) {t=1; DaysLeft=60+DaysLeft;}
        MonthsLeft=targetmonth-ThisDate.getMonth()-t-1;
        t=0;if (MonthsLeft<0) {t=1; MonthsLeft=60+MonthsLeft;}
        YearsLeft=targetyear-ThisDate.getYear()-t;
        //document.forms.countdownform.T1.value=YearsLeft;
        //document.forms.countdownform.T2.value=MonthsLeft;
        //document.forms.countdownform.T3.value=DaysLeft;
        document.forms.countdownform.tid.value='Dage: ' + DaysLeft + ', Timer: ' + HoursLeft +', Min.: ' +MinutesLeft+ ', Sek.: ' + SecondsLeft ;
        //document.forms.countdownform.T5.value=MinutesLeft;
        //document.forms.countdownform.T6.value=SecondsLeft;
        CountDownId=setTimeout("countdown()",1000);
    }
}

</script>
</head>
<body onLoad='countdown()'>
<form name='countdownform'>
<input name='tid' style='width:100%'>
</form>
</body>
</html>
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 13:47 #2
så skal alert(); selvfølgelig bar udskiftes med hvad du nu engang vil ha
Avatar billede agerled Nybegynder
19. oktober 2003 - 13:52 #3
stopper counteren så ved nul uden at tælle videre?
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 13:54 #4
yep
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 13:54 #5
.. prøv det selv, husk selvfølgelig at tilpasse tiden den skal tælle ned til sådan du ikke skal sidde og vente et par dage før resultatet kommer! ;)
Avatar billede agerled Nybegynder
19. oktober 2003 - 13:57 #6
skide godt. tak! og værs'go!
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 13:59 #7
det var så lidt :)
Avatar billede agerled Nybegynder
19. oktober 2003 - 14:00 #8
Kan man ikke få den til at tælle ud fra severens tid istedet for klientens??
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 14:02 #9
nej det tror jeg ikke... javascript er et clientsprog, men nu kommer en af javascript-hajerne sikkert og retter mig lige om lidt ;)
Avatar billede roenving Novice
20. oktober 2003 - 00:20 #10
Hvis du skal bruge serverens tid, må du sende den som en del af koden !-)

-- elskermad.dk har jo helt ret i, at javascript i denne situation kun afvikles clientside (og det ville være tåbeligt at afvikle den slags serverside og sende en ny side fra en asp-server hvert sekund ,-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester