2008-08-31 24 views
5

Después de horas de depuración, me parece que en Firefox, el innerHTML de un DOM refleja lo que realmente está en el marcado, pero en IE, el innerHTML refleja lo que está en el marcado MÁS cualquier cambio hecho por el usuario o dinámicamente (es decir, a través de Javascript).Firefox contra IE: manejo innerHTML

¿Alguien más ha descubierto que esto es cierto? ¿Alguna solución alternativa para asegurar que ambos se comporten de la misma manera?

+0

esta es una vieja pregunta: ¿por qué no 'steve m' ha elegido una respuesta? –

Respuesta

9

Estoy de acuerdo con Pat. En este punto del juego, escribir tu propio código para lidiar con la compatibilidad entre navegadores dado el marco de JavaScript disponible no tiene mucho sentido. Hay un marco para casi todos los gustos (algunos realmente muy pequeños) y se han centrado en realmente abstraer todas las diferencias entre los navegadores. Están haciendo MUCHO más pruebas de las que es probable que haga.

Algo como jQuery o YUI de Yahoo (pensemos cuántas personas acceden al Javascript de Yahoo en un día y la variedad de navegadores) es mucho más probado en la carretera que cualquier fragmento que tú o yo hayamos ideado.

11

Uso jQuery's .html() para obtener un resultado coherente en todos los navegadores.

+0

¡Lo mismo aquí! jQuery es un salvador al trabajar con el DOM. –

+0

El problema es que jQuery.html() no arroja resultados consistentes. Cita de la parte relevante de la documentación de jQuery: "Este método utiliza la propiedad innerHTML del navegador. Algunos navegadores pueden no devolver HTML que replica exactamente el código fuente HTML en un documento original. Por ejemplo, Internet Explorer a veces deja las comillas alrededor de los valores de los atributos si contienen solo caracteres alfanuméricos ". – merryprankster

1

El uso del prototipo y la sintaxis $ ("thisid") en lugar de document.getElementById ("thisid") podría hacer el truco para usted. Funcionó para mí

2

usando una buena biblioteca es una gran manera de evitar las incoherencias del navegador, y jquery es el que normalmente recomiendo - y si se encuentra con problemas que alteran los elementos en una forma en particular, jquery cuenta con algunos realmente complementos útiles centrados específicamente en la manipulación y evaluación de formularios.

Cuestiones relacionadas