Javascript affichage sous condition

Fermé
canaillou - 30 nov. 2008 à 15:01
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 2 déc. 2008 à 23:34
Bonjour à tous, voila j'ai un petit problème mais comme vous êtes des lumières vous allez pouvoir le résoudre ^^

En fait mon scirpt doit afficher un bouton menant vers un lien URL si le compte à rebour est finit

voici le script :

<html>
<head>
<script language="JavaScript">
// la date à partir de laquelle on compte
var cible = new Date("December 7, 2008 14:00:00");

// nombre de millisecondes par jour, heure, minute et seconde
var mms_jour = 24 * 60 * 60 * 1000;
var mms_heure = 60 * 60 * 1000;
var mms_minute = 60 * 1000;
var mms_seconde = 1000;

function decompte() {

// la date courante
var aujourdhui = new Date();

// on crée les variables qui accueilleront les différences entre aujourd'hui et la date à atteindre
var change_j = -1;
var change_h = -1;
var change_m = -1;

// le total de millisecondes de différences
var diff_mms = cible.getTime() - aujourdhui.getTime();

// pareil pour les jours
diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;

// pour les heures
diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;

// les... minutes, bravo ;-)
diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;

// les secondes, ce qui reste en fait.
var diff_secondes = Math.floor(diff_mms / mms_seconde);

// on affecte nos résultats aux champs du formulaire
document.getElementById("jours").innerHTML = diff_jours;
document.getElementById("heures").innerHTML  = diff_heures;
document.getElementById("minutes").innerHTML  = diff_minutes;
document.getElementById("secondes").innerHTML = diff_secondes;
lienurl ="MONLIEN";


// on relance la fonction pour actualiser à la seconde
setTimeout("decompte()",1000);
}
</script> 

</head>

<body  onLoad="decompte()">
<center>
<script> 

if (diff_jours<0) {
<form name="formulaire"><font face="arial" size="4"><b>
BIDUL CHOUET BIDUL DISPONIBLE DANS : <br><br>
<span id="jours">0</span> jours 
<span id="heures">0</span> heures
<span id="minutes">0</span> minutes
<span id="secondes">0</span> secondes
<br><br> }

if (diff_jours>=0) {
<INPUT TYPE="button" Value="NOM DU BOUTON" onclick="window.location=lienurl;"> }
</form>} 

<br> </center>
</script> 
</body>
</html>




voila je vous remerci d'avance, bon après midi .
A voir également:

2 réponses

photon02100 Messages postés 4 Date d'inscription dimanche 30 novembre 2008 Statut Membre Dernière intervention 23 juillet 2009
2 déc. 2008 à 21:27
pourais tu reformuler ta question? ^^
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
2 déc. 2008 à 23:34
Bonsoir Canaillou !
Il faut que tu crées un lien dans ton html, et tu lui mets le style : visibility: hidden.
Ensuite, tu as un problème dans ton js : ton compte à rebours ne se termine jamais vu que la fonction décompte est appelée infiniment.
Je pense qu'il faut que tu définisses une condition de ce style :
if (diff_mms < 0) { //a changer pour mettre ce que tu veux
 setTimeout("decompte()", 1000);
} else {
 var link = document.getElementById("idDuLien");
 link.style.visibility = visible; 
}


Cordialement
0