il mio scopo è ricavare le dimensioni di un'immagine dopo che è stata dinamicamente caricata dalla pagina.
ho pensato di poter usare uno di questi due codici
codice:/* codice 1 */ function prendi(img) { alert(img.height); }; var divis = document.getElementById("maincont"); var imagelem = document.createElement("img"); imagelem.id = "immago"; divis.appendChild(imagelem); imagelem.onload = prendi(imagelem); imagelem.src = "nomedelfile.jpg";il problema è che il primo dei due non funziona, nel senso che restituisce sempre un valore dell'altezza del'immagine sbagliato.codice:/* codice 2 */ var divis = document.getElementById("maincont"); var imagelem = document.createElement("img"); imagelem.id = "immago"; divis.appendChild(imagelem); imagelem.onload = function() { alert(this.height); }; imagelem.src = "nomedelfile.jpg";
Inoltre, se vado dopo a modificare l'attributo src dell'immagine (cioè ne faccio caricare un'altra, dinamicamente, nello stesso "tag"), il codice n.1
funziona solo dopo il primo caricamento, mentre il secondo funziona anche quando carico le altre immagini (e restituisce l'altezza corretta).
Il problema è che io vorrei utilizzare il codice 1, perché è ovviamente riutilizzabile e dovrei usarlo su altri elementi.
Qualcuno mi sa spiegare perché il 2 funziona e l'1 no?

Rispondi quotando