Firefox controCIOÈ:gestione innerHTML
-
09-06-2019 - |
Domanda
Dopo ore di debug, mi sembra che in FireFox, l'innerHTML di un DOM rifletta ciò che è effettivamente nel markup, ma in IE, l'innerHTML riflette ciò che è nel markup PIÙ qualsiasi modifica apportata dall'utente o in modo dinamico (ad es.tramite Javascript).
Qualcun altro ha riscontrato che ciò è vero?Qualche soluzione interessante per garantire che entrambi si comportino allo stesso modo?
Soluzione
Sono d'accordo con Pat.A questo punto del gioco, scrivere il proprio codice per gestire la compatibilità tra browser, dati i framework Javascript disponibili, non ha molto senso.Esiste un framework per quasi tutti i gusti (alcuni davvero minuscoli) e si sono concentrati sull'astrazione di tutte le differenze tra i browser.Stanno facendo MOLTI più test di quanto probabilmente farai tu.
Qualcosa come jQuery o YUI di Yahoo (pensa a quante persone utilizzano Javascript Yahoo in un giorno e alla varietà di browser) è semplicemente molto più testato su strada di qualsiasi snippet che tu o io inventiamo.
Altri suggerimenti
Io uso jQuery .html() per ottenere un risultato coerente tra i browser.
utilizzare una buona libreria è un ottimo modo per aggirare le incoerenze del browser e jquery è quello che in genere consiglio - e se riscontri problemi nell'alterare gli elementi in un modulo in particolare, jquery vanta alcuni plugin davvero utili focalizzati specificamente sulla manipolazione e valutazione dei moduli.
Usare il prototipo e la sintassi $("thisid") invece di document.getElementById("thisid") potrebbe fare al caso tuo.Ha funzionato per me.