[javascript] Compte à rebours

widi70 Messages postés 649 Date d'inscription   Statut Membre Dernière intervention   -  
widi70 Messages postés 649 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous, j'ai un petit probleme j'ai réussit à trouver un code pour faire un decompte en javascript.j'ai trouvé ceci :
<!-- This document was created with HomeSite v2.5 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">

<HTML>
<HEAD>
<TITLE>Décompte JavaScript</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
// Décompte JavaScript (C)1997 Cyril Pannetier - La Petite Boutique Java & JavaScript -
// web : http://www.mygale.org/08/pannetie
// e-mail : pannetie@mygale.org
// Ce script est librement utilisable. Merci de ne pas effacer ces commentaires.

var Mois = new Array(12);
var Jours = new Array(7);

function Decompte(msg1,msg2,endmsg,datetemoin,cible,Fonction) {

this.Target = cible;
this.fonction = Fonction + '.Affiche()'; // Nom de l'objet JavaScript
this.timeout = null;
this.datebase = new Date(datetemoin);
this.mesg1 = msg1;
this.mesg2 = msg2;
this.end = endmsg;
this.ToStop = false;

this.Init = Initialise;
this.Affiche = Affichage;
this.Stop = StopAll;

this.Init();
this.Affiche();
}

function Initialise() {
var cur = new Date();
var diff = this.datebase.getTime() - cur.getTime();
this.ToStop = (this.end != '');
}

function Affichage() {
var out;
curdate = new Date();
if ( (this.ToStop) && ( (this.datebase.getTime() - curdate.getTime()) <= 0 ) ) {
if (this.Target == "") {
window.status = this.end;
}
else {
this.Target.value = this.end;
}
StopAll();
}
else {
difference = Math.abs(this.datebase.getTime() - curdate.getTime());
difference = Math.floor(difference / 1000);
nbj = Math.floor(difference / 86400);
difference = difference % 86400;
nbh = Math.floor(difference / 3600);
difference = difference % 3600;
nbm = Math.floor(difference / 60);
difference = difference % 60;
nbs = difference;
out = this.mesg1 + ' ' + nbj;
if (nbj == 1)
out += ' jour ' + nbh;
else
out += ' jours ' + nbh;
if (nbh == 1)
out += ' heure ' + nbm;
else
out += ' heures ' + nbm;
if (nbm == 1)
out += ' minute ' + nbs;
else
out += ' minutes ' + nbs;
if (nbs == 1)
out += ' seconde ' + this.mesg2;
else out += ' secondes ' + this.mesg2;

if (this.Target == "") {
window.status = out;
}
else {
this.Target.value = out;
}
this.timeout = window.setTimeout(this.fonction,1000);
}
}

// Fonction Arret
function StopAll() {
clearTimeout(this.timeout);
this.timeout = null;
}
//-->
</SCRIPT>
</HEAD>

<BODY onLoad = "LeDecompte = new Decompte('','','Bonne Année. Bienvenue dans le nouveau millénaire!','30 nov, 2009 21:36:00',document.JSCLOCK.CLOCK,'LeDecompte');"
onUnload = 'LeDecompte.Stop();'>

<H1>Décompte de temps en JavaScript : Jusqu'à une date donnée</H1>
<HR>

<CENTER>
<FORM NAME="JSCLOCK">
<INPUT NAME="CLOCK" SIZE=40 VALUE="champ 1"><BR>
</FORM>
</CENTER>
<HR>



</BODY>
</HTML>


Par contre j'ai un petit problème et vu que je ne m'y connet pas trop en javascript...
J'aimerais faire un test du genre
if(il reste encore du temps){
j'affiche le temps
}
else{
je renvoit sur une page
}
et bien entendu le script doit bien se mettre à jour en même temps que le décompte...pas qu'il y est besoin de recharger la page....

Alors j'ai essayé de mettre une redirection dans function StopAll() mais ça ne fonction pas


Merci bcp de votre aide<code>

3 réponses

widi70 Messages postés 649 Date d'inscription   Statut Membre Dernière intervention   65
 
SVP
0
graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
je te conseille le flash pour un comtpe a rebours, plus propre et plus joli que javascript :)
0
widi70 Messages postés 649 Date d'inscription   Statut Membre Dernière intervention   65
 
ben je connait pas grand chose en javascript mais alors le flash c'est encore pire
en plus je n'ai pas le logiciel adequate pour modifier les .fla
merci de votre aide j'aimerais juste modifier le script donné plus haut pour rediriger vers une page lorsque le temps est fini
Merci
0