Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Non riesco a far funzionare un semplice setInterval()...

    Clicco sul pulsante, stampa 0 e poi mozilla è come se stesse caricando qualcosa ma sta fermo:

    codice:
    <html>
    	<head><title>Test</title></head>
    	<body>
    		<script type = "text/javascript">
    			var count = 0;
    			var id;
    			
    			function start()
    			{
    				id = setInterval ("interval()", 1000);
    			}
    			
    			function interval()
    			{
    				if (count < 10)
    				{
    					document.write (count + "
    ");
    					count++;
    				}
    				else
    				{
    					document.write ("End
    ");
    					clearInterval (id);
    				}
    			}
    		</script>
    		
    		<input type = "submit" value = "start" onClick = "start()";>
    	</body>
    </html>
    Ho provato anche in altri modi ma da lo stesso problema... cos'è che sbaglio? Sto impazzendo...

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    id = setInterval (interval, 1000);

    oppure

    id = setInterval (function() { interval(); }, 1000);
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Ho provato ma da lo stesso problema...

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    ma oltre alla sintassi sul setinterval tu stai sovrascrivendo interamente il documento con document.write, naturale che poi il tutto si blocchi alla prima chiamata

    creati un blocco per contenere i risultati che restituisce la funzione interval ad esempio così

    codice:
    <html>
    	<head><title>Test</title></head>
    	<body>
    		<script type = "text/javascript">
    			var count = 0;
    			var id;
                var output = null;
    			
    			function start()
    			{
    	            output = document.getElementById('output');
    				id = setInterval (interval, 1000);
    			}
    			
    			function interval()
    			{
    				if (count < 10)
    				{
    					output.innerHTML += count + "
    ";
    					count++;
    				}
    				else
    				{
    					output.innerHTML += "End
    ";
    					clearInterval (id);
    				}
    			}
    		</script>
    		
    		<input type = "submit" value = "start" onClick = "start()";>
    
    		<div id="output"></div>
    	</body>
    </html>

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Originariamente inviato da fcaldera
    ma oltre alla sintassi sul setinterval tu stai sovrascrivendo interamente il documento con document.write, naturale che poi il tutto si blocchi alla prima chiamata

    creati un blocco per contenere i risultati che restituisce la funzione interval ad esempio così

    codice:
    <html>
    	<head><title>Test</title></head>
    	<body>
    		<script type = "text/javascript">
    			var count = 0;
    			var id;
                var output = null;
    			
    			function start()
    			{
    	            output = document.getElementById('output');
    				id = setInterval (interval, 1000);
    			}
    			
    			function interval()
    			{
    				if (count < 10)
    				{
    					output.innerHTML += count + "
    ";
    					count++;
    				}
    				else
    				{
    					output.innerHTML += "End
    ";
    					clearInterval (id);
    				}
    			}
    		</script>
    		
    		<input type = "submit" value = "start" onClick = "start()";>
    
    		<div id="output"></div>
    	</body>
    </html>

    Ciao
    Grazie mille così funziona! Ma perchè document.write manda in palla tutto?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.