Salve!
Ancora con un problema irrisolto, mi si presenta un ulteriore problema! Spero questa volta possiate aiutarmi.
Ho questa paginetta semplice:
Codice HTML:
<html>
<head><title>adf</title>
</head>
<body>
<script type="text/javascript">
var immagini = new Array();
//document.carica = function(quale)
function carica(quale)
{
immagini[quale] = new Image();
immagini[quale].src = './'+quale+'.jpg';
immagini[quale].onload = function() {
document.getElementById('ciao'+quale).innerHTML = 'Immagine caricata. Click <a href="#" onClick="mostra(\''+quale+'\');">qui</a> per mostrarla';
}
return false;
}
//document.mostra = function(quale)
function mostra(quale)
{
document.getElementById('ciao'+quale).innerHTML = '<img src="'+quale+'.jpg" class="img" width="100px" height="100px" />';
return false;
}
window.onload = function() //ERRORE!!!!
{
for(i=0;i<5;i++)
document.write('<span id="ciao'+i+'">Immagine '+i+' non caricata (<a href="#" onClick="carica(\''+i+'\');">carica</a> o <a href="#" onClick="mostra(\''+i+'\');">mostra</a>)</span>');
}
</script>
</body>
</html>
Se provo a cliccare su "carica" oppure "mostra", appare l'errore rispettivo:
carica is not defined
mostra is not defined
Notare che questo succede in tutti i browser (firefox, internet explorer, opera), ma funziona correttamente su chrome!
Googleando un attimo, qui dicevano di inserire prima del nome della funzione, "document." (parte commentata).
Comunque, anche con il "document.", la funzione non mi vede l'array globale...
Questa volta la pagina non mi serve, in quanto volevo verificare soltanto una cosa (verificata con chrome). Però mi ha comunque incuriosito il fatto...
Grazie,
Ciao!
EDIT:
Sarà l'ora...
Ovviamente l'errore è che ho eseguito la document.write() dopo il caricamento della pagina .. Cosa da evitare assolutamente!
Infatti lui crea una nuova pagina con solo il sorgente scritto dalla document.write(), quindi il resto dello script (e più in generale la pagina) non c'é più!
Ciao!