2012-03-09 10 views
5

Firefox tiene cierta tolerancia cuando renderiza HTML incorrecto. Esto significa que incluso si se deja fuera una etiqueta de cierre, el HTML se mostrará como si todo estuviera bien. Este aspecto de tolerancia es particularmente relevante cuando se usa JavaScript para manipular o agregar contenido en la página actual.Desactiva la tolerancia (o habilita el rigor) en Firefox cuando se procesa HTML

Dado que uso Firefox como mi principal buscador de pruebas/desarrollo, este comportamiento me ha causado más de una preocupación, y las consecuencias son la pérdida de funcionalidad en los navegadores "más estrictos". Por ejemplo, el mismo código en Microsoft Internet Explorer no produjo ningún resultado visible debido a la etiqueta mencionada faltante en el contenido agregado.

Ahora la pregunta es, ¿hay alguna forma de decirle a Firefox que sea más estricto con el HTML aceptado y falle en lugar de "adivinar una solución" (especialmente cuando el HTML se agrega mediante JavaScript)?

PD: He intentado jugar con el DOCTYPE pero los resultados fueron los mismos.

+1

Supongo que Firefox es estricto solo para XTHML (con el tipo de documento correcto) – Aprillion

+0

¿Puede mostrar un ejemplo de un archivo que Firefox procesa pero se rompe (hasta el punto de no mostrar nada) en IE? Mi experiencia es que los errores como las etiquetas de final faltantes se manejan más o menos igual en todos los principales navegadores. Claro, diferentes navegadores manejan los errores de forma diferente, pero generalmente no tan mal. –

+0

@MrLister trabajará en él y actualizará la pregunta – Unode

Respuesta

1

Todos los analizadores son permisivos hasta cierto punto. La mayoría de los sitios principales tienen errores (no es que esto lo justifique, solo lo dice). Si desarrolla un depurador conectado, detectará errores de guiones mucho más rápidamente. También capturo errores de guiones usando un minificador en mi proceso de compilación (que fallará en problemas importantes de sintaxis). Valido mi marcado HTML usando las advertencias en tiempo real de Visual Studio 2010 (que no siempre son perfectas) y utilizo periódicamente el servicio de validador w3.

Para la opción de navegador, suelo desarrollar en general; de una vez, literalmente, puedo cambiar entre los modos IE7/8/9, Chrome y Firefox. Safari y Opera generalmente funcionan si los navegadores antes mencionados están cubiertos. De esta manera, no voy demasiado lejos en un camino erróneo.

BTW, DOCTYPE es importante (aunque no siempre parezca así).

+0

¿Cómo se valida HTML que se ensambla en JavaScript? No existe antes de la ejecución ... – Unode

+0

@Unode - buena pregunta. Depende en gran medida de un marco (como jQuery) para crear un marcado bien formado (aunque todavía puede no ser válido, por ejemplo, etiquetas anidadas ilegalmente). Si estuviese generando una gran cantidad de marcado, probablemente lo descargue en bruto en una ventana de consola antes de que el navegador lo formatee o reelabore. Luego lo inspeccionaría visualmente o lo pegaría en un validador. Ahora que lo mencionas, sería agradable tener una manera más elegante de hacerlo. –

+0

@Unode en Firefox, seleccione todo, haga clic con el botón derecho + "Mostrar origen de selección" mostrará el contenido generado. –

1

He encontrado que es mejor simplemente descomponer y hacer su trabajo principal en IE.

Si utiliza un buen tipo de documento (<! DOCTYPE html >) y establecer el encabezado compatibles-ua-x para el modo IE8, el trabajo extra que tiene que hacer para hacer un trabajo de aplicación/ven bien en otros navegadores es mínimo .

+0

Trabajar principalmente con IE es una solución difícil ya que Windows no es el entorno de desarrollo.No estaba familiarizado con el encabezado x-ua-compatible, parece magia negra :) – Unode

2

No utilice los navegadores para verificar su HTML; no están diseñados para hacer eso. Use un validador real, como the W3C's validator. Hay appear to be muchas extensiones de Firefox que validarán la página con un clic o automáticamente, aunque no estoy familiarizado con ellas ya que no uso Firefox como mi navegador principal.

+0

incluso Notepad ++ tiene complementos para eso, p. TextFX> 'TextFX HTML Tidy' – Aprillion

+0

HTML VALIDATOR http://users.skynet.be/mgueury/mozilla/ es un buen validador – Variant

+0

El problema es que si el HTML se manipula con Javascript, el" código fuente "ya no es un archivo plano y es parte del DOM en el navegador. En este caso, la tolerancia ya se produjo y cualquier validación en el navegador no identificará los errores posteriores a JavaScript. Utilizo la extensión @Variant mencionada y tiene una "Validación después de la manipulación de JavaScript", pero solo puede encontrar un subconjunto de errores que en algunas condiciones se encontraron insuficientes. – Unode

Cuestiones relacionadas