View Full Version : [JavaScript] ChildNodes su IE


hee136
26-09-2010, 10:48
Ogni volta che in uno script uso l'oggetto DOM ChildNodes su Internet Explorer mi dà l'errore: "ChildNodes è nullo o non è un oggetto".
Premetto che la pagina visualizzata su Firefox invece funziona.
Come posso fare per rendere la pagina compatibile anche con IE?
Grazie!

MEMon
26-09-2010, 18:17
Ogni volta che in uno script uso l'oggetto DOM ChildNodes su Internet Explorer mi dà l'errore: "ChildNodes è nullo o non è un oggetto".
Premetto che la pagina visualizzata su Firefox invece funziona.
Come posso fare per rendere la pagina compatibile anche con IE?
Grazie!

Se ti riferisci alla proprietà childNodes[] di un element allora con IE non da problemi.

hee136
26-09-2010, 18:55
Se ti riferisci alla proprietà childNodes[] di un element allora con IE non da problemi.

Ho un codice javascript che su Firefox funzione, mentre su IE mi dice: "childnode is null or is not an object".

Fra un attimo ti pubblico il codice.

hee136
26-09-2010, 19:01
function chiudi() {
var i,j,riga,padre,figlio;
for(i=1;i<5;i++) {
riga = document.getElementsByName("riga"+i)[0];
for(j=0;j<3;j++) {
padre=riga.childNodes[j];
figlio=riga.childNodes[j].childNodes[0];
padre.textContent="";
if (padre.hasChildNodes()==true) padre.childRemove(figlio);
}}}


IE mi dà errore sulla riga evidenziata.

MEMon
26-09-2010, 19:03
Allora "riga" non è quel che credi, fai un pò di debug e vedrai.

hee136
26-09-2010, 19:11
Allora "riga" non è quel che credi, fai un pò di debug e vedrai.

Prima di tutto ti ringrazio per il tempo che dedichi a darmi una mano.
Però vedi, non riesco a spiegarmi come mai solo su IE non funziona mentre su Firefox funziona e fa quello che deve fare.

MEMon
26-09-2010, 19:15
Prima di tutto ti ringrazio per il tempo che dedichi a darmi una mano.
Però vedi, non riesco a spiegarmi come mai solo su IE non funziona mentre su Firefox funziona e fa quello che deve fare.

Direi che il problema sia qui

riga = document.getElementsByName("riga"+i)[0];

Accertati che riga non sia un TEXT_NODE, e che sia davvero un elemento DOM, se puoi metti riga dentro un alert e vedi cosa ti dice.
IE ha alcuni limiti con getElementsByName, ad esempio IE6 ci butta dentro anche gli elementi che han l'id con il nome che cerchi.

Inoltre penso che IE permetta di ottenere gli elementi tramite nome solo se sono all'interno di un form.