venerdì 3 agosto 2007

Problema con javascript su childNodes[x]

Scrivendo javascript è inevitabile incontrare problemi di compatibilità sui diversi browser. Quello dello scorrimento del documento con i childNodes e simili è un problema di cui ne ho individuato da poco il problema. Internet Explorer tratta i nodi per quello che sono ma riutilizzando lo stesso sistema su FireFox qualcosa cambia! Come mai... a quanto pare dopo una serie di test e nessuna ricerca sulla rete il problema sembrerebbe essere nella formattazione del documento html. Difatti producendo codice formattato e indentato a dovere si aggiungono caratteri di tabulazione particolari come ad esempio "a capo" codificato con "\n". Questi a FireFox danno fastidio e di conseguenza condizionano notevolmente la struttura del javascript.

Se per raggiungere un elemento in IE basterebbe document.getElementById('pippo').childNodes[0], per FireFox, se dopo l'elemento pippo c'è uno \n sarà necessario incrementare la chiave dell'array e quindi: document.getElementById('pippo').childNodes[1].

Occhio!

1 commento:

Unknown ha detto...

Sono capitato per caso in questa pagina, dovendomi confrontare con un behaviour identico.
Mi hai risparmiato un bel pò di tempo a cercare la causa, grazie :)