[Javascript] Mon chrono ne fonctionne pas

Résolu/Fermé
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 14 avril 2007 à 16:49
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 - 15 avril 2007 à 22:56
Bonjour

Je désire afficher le nombre de secondes sur une page internet. Je crois que le problème vient du fait que j'utilise window.document.write pour afficher le nombre de secondes. Comment dois-je faire .

Merci d'avance.

Voici mon code.

<html>
		<head>
			<title>Exple</title>
			<SCRIPT Language="Javascript">
					
				function Timer() 
				{
					var CompteArebours = new Date();
	
					window.document.write = CompteArebours.getSeconds();
					
					 setTimeout ("Timer()",1000);
					
				}
				
			</SCRIPT>
		</head>
	<body>
		<script type="text/Javascript">
			Timer();
		
		</script>		
	
	</body>
	
</html>

7 réponses

Utilisateur anonyme
15 avril 2007 à 13:56
Salut!

Ton code fonctionne, mais le problème vient du fait qu'au premier appel de ta fonction "Timer()", tu écrases le code de ta page entière.

Tu ne dois pas écrire directement sur ta page, mais plutôt dans un div, un span ou un autre élément.

Teste avec le code ci-dessous:

<html>
	<head>
		<title>Exple</title>
		<script type="text/javascript" language="Javascript">
				
			function Timer(){
				var CompteArebours = new Date();
				document.getElementsByName('clock')[0].innerHTML = CompteArebours.getSeconds();
				setTimeout ("Timer()",1000);					
			}				
		</script>
	</head>
	<body>
		<div id="clock" name="clock"></div>
		<script type="text/Javascript">
			Timer();		
		</script>	
	</body>	
</html>



;-)
HackTrack
2
Utilisateur anonyme
15 avril 2007 à 22:06
Re-Salut!

En fait .innerHTML ne remplace pas document.write: le premier est un attribut de tag HTML relatif à un tag spécifique tandis que le second est une fonction agissant sur le document entier.

document.write: comme son nom l'indique, va écrire directement sur le document, remplaçant par là son contenu, ce qui a pour effet de remplacer le code de la page par celui que tu fourni à la méthode write. En remplaçant le code de la page, le script disparaît et cesse d'être exécuté. C'est pour cela que ton script n'était pas exécuté.

.innerHTML: attribut de certains tags HTML qui permet de connaître le contenu HTML du tag (ou de fixer celui-ci).
1
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
15 avril 2007 à 10:18
Re Bonjour

Je crois savoir pourquoi mon code de marche pas. A cause window.document.write. Il est en lecture seul et il est donc impossible de le modifier. Or je veux afficher le nombre de secondes toutes les secondes. Comment puis-je faire svp ?
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
15 avril 2007 à 15:00
Merci beaucoup, je constate que ça marche comme sur des roulettes, mais est-ce que tu pourrais m'expliquer cette ligne du code :

document.getElementsByName('clock')[0].innerHTML = CompteArebours.getSeconds();

document.getElementsByName('clock')[0] //on retourne un tableau d'objet ayant clock définit dans la propriété name

mais je ne comprends pas le .innerHTML

Je te remercie d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
innerHTLH remplace document.write_ ça permet d'écrire à l'écran mais sans effacer tout ce qui avait été écrit sur la page préalablement.

Regarder
http://www.huntingground.freeserve.co.uk/main/mainfram.htm?../imagery/img_thumbs.htm
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
15 avril 2007 à 17:15
D'accord j'ai compris le truc.

Merci

Au revoir
0
Dédé86 Messages postés 682 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 14 mars 2017 208
15 avril 2007 à 22:56
Merci pour ces précisions.

Cela m'a bien aidé.

Au revoir.
0