[Javascript] Mon chrono ne fonctionne pas

Résolu
Dédé86 Messages postés 690 Statut Membre -  
Dédé86 Messages postés 690 Statut Membre -
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>

Configuration: Windows XP
Firefox 2.0.0.3

7 réponses

  1. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    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
  3. Dédé86 Messages postés 690 Statut Membre 211
     
    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
  4. Dédé86 Messages postés 690 Statut Membre 211
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. JC
     
    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
  7. Dédé86 Messages postés 690 Statut Membre 211
     
    D'accord j'ai compris le truc.

    Merci

    Au revoir
    0
  8. Dédé86 Messages postés 690 Statut Membre 211
     
    Merci pour ces précisions.

    Cela m'a bien aidé.

    Au revoir.
    0