Non capisco cosa sia sbagliato. Ho tre codici:
Prime:setInterval all'interno di una funzione genera un errore: la variabile non è definita
<script language="JavaScript" type="text/javascript">
var count = 0;
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
</script>
Secondo:
<script language="JavaScript" type="text/javascript">
function countdown()
{
var count = 0;
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
}
countdown();
</script>
Terzo:
<script language="JavaScript" type="text/javascript">
var count = 0;
function countdown()
{
alert(count);
var timer = setInterval("count = count + 1; alert(count);",10000);
}
countdown();
</script>
Il primo codice funziona bene, la seconda produce un errore nella riga "setInterval": "count non è definito" e il terzo codice funziona di nuovo bene. L'ambito della variabile "count" dovrebbe essere globale per la funzione setInterval nel secondo codice. Perché non lo è? Sto usando Mozilla Firefox. Grazie.
Hai appena trovato uno dei motivi per cui non dovresti usare le stringhe come callback per setInterval/setTimeout. Dai un'occhiata alle domande correlate a destra, scommetto che metà di loro condividono lo stesso problema. – Yoshi