Probleme en Javascript

Résolu/Fermé
Gorbleu - 5 sept. 2007 à 00:31
 Gorbleu - 7 sept. 2007 à 23:24
Bonjour, voila je débute en javascript et j'ai un souci avec ce code, en effet rien ne s'affiche !

je ne comprend vraiment pas pourquoi et j'aurai besoin d'un coup de main merci d'avance pour vos réponses

<html>
  <head></head>
  <body>
  <script language="JavaScript">
function compteur() {
var annee = 2008;
var mois = 12;
var jour = 25;

Maintenant = new Date;
TempMaintenant = Maintenant.getTime();

Futur = new Date(annee, mois, jour);
TempFutur = Futur.getTime();

Diffsec = Math.floor((TempFutur-TempMaintenant)/1000);

DiffMin = Math.floor(DiffSec/60);
DiffHeure = Math.floor(DiffMin/60);
DiffJour = Math.floor(DiffHeure/60);

DiffMin = DiffMin % 60;
DiffHeure = DiffHeure % 24;
DiffSec = DiffSec % 60;

document.write('Time '+DiffJour+' Days '+DiffHeure+' Hours '+DiffMin+' Minutes '+DiffSec+' Seconds ');

setTimeout("compteur()", 999);
}

window.onload = compteur();
</script>
  </body>
</html>

4 réponses

knasucre22 Messages postés 104 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 26 août 2014 30
5 sept. 2007 à 09:12
Salut GorBleu,

Tout d'abord essaie de sortir ta partie script javascript du <body> et de le mettre dans le <head> ou entre le <head> et le <body>.

De deux, tu deffini le setTimeout() a chaque appel de la fonction , a mon avis , le serveur bloque a ce point.

Pour y remedier, enleve le window.onload de ton script et met au debut de ton <body> ( vu que tu aura la déclaration de ta fonction) le setTimeOut(...);
Il faut que tu enleve le setTimeOut() de ta fonction aussi. Apres ces changement la déclaration de Timer ne se fais qu'une seule fois donc ça devrais passer.

De plus, avec les modifications que je t'ai apporté , la fonction compteur ne s'appelle qu'apres le temps que tu as défini dans ton setTimeOut() , pour régler ce probleme tu appelles ta fonction avant la déclaration du Timer.

Voila , j'espere t'avoir aider.
0
oky merci de ton aide, donc si je comprend bien mon script devrais ressembler à ça ?

<html>
  <head>
    <script language="JavaScript">
function compteur() {
var annee = 2008;
var mois = 12;
var jour = 25;

Maintenant = new Date;
TempMaintenant = Maintenant.getTime();

Futur = new Date(annee, mois, jour);
TempFutur = Futur.getTime();

Diffsec = Math.floor((TempFutur-TempMaintenant)/1000);

DiffMin = Math.floor(DiffSec/60);
DiffHeure = Math.floor(DiffMin/60);
DiffJour = Math.floor(DiffHeure/60);

DiffMin = DiffMin %60;
DiffHeure = DiffHeure %24;
DiffSec = DiffSec %60;

document.write('Time '+DiffJour+' Days '+DiffHeure+' Hours '+DiffMin+' Minutes '+DiffSec+' Seconds ');

}


</script>
</head>
  <body>
      <script>
      compteur();
      setTimeout("compteur()", 999)
      </script>
  </body>
</html>


je débute en javascript et j'ai encore du mal a saisir les subtilités de ce langage ^^
0
knasucre22 Messages postés 104 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 26 août 2014 30
7 sept. 2007 à 23:18
oui c'est le code que j'aurais fais , il y a peut etre mieu mais celui-ci devrais fonctionné.

As-tu essayé ce code , fonctionne t'il ?? si oui met la discussion en résolu STP.

Bonne soirée
0
en fait j'ai retravailler le code et j'ai fini par avoir ceci qui fonctionne plus pas mal, je dois encore tester si il y a des bug au niveau des dates mais ca a l'air de coller

merci encore
<html>
  <head>
    <script language="JavaScript">
    
function HorlogeDynamique() {

var annee = 2008;
var mois = 12;
var jour = 25;

Maintenant = new Date;
TempMaintenant = Maintenant.getTime();

Futur = new Date(annee, mois, jour);
TempFutur = Futur.getTime();

DiffSec = Math.floor((TempFutur-TempMaintenant)/1000);

DiffMin = Math.floor(DiffSec/60);
DiffHeure = Math.floor(DiffMin/60);
DiffJour = Math.floor(DiffHeure/24);

DiffMin = DiffMin %60;
DiffHeure = DiffHeure %24;
DiffSec = DiffSec %60;

	if (DiffHeure <= 9) {
		DiffHeure = "0" + DiffHeure;
		}
	if (DiffMin <= 9) {
		DiffMin = "0" + DiffMin;
		}
	if (DiffSec <= 9) {
		DiffSec = "0" + DiffSec;
		}

Horloge ="<b>"+ DiffJour +" Days "+ DiffHeure +" Hours "+ DiffMin +" Min "+ DiffSec +" Sec</b>";
	

	if (document.getElementById) {
		document.getElementById("clock").innerHTML = Horloge;
		
		}

	if (document.layers) { 
    		document.clock.document.write("<br>  "+Horloge); 
		document.clock.document.close(); 
  		}

	if ((document.all)&&(!document.getElementById)) { 
    		document.all["clock"].innerHTML = Horloge;
 		}

	setTimeout("HorlogeDynamique()", 1000)
	}
	
window.onload = HorlogeDynamique;


</script>
</head>
<body>
<div id=clock style="position:relative;"></div>
</body>
</html>
0