mitago.net

Página web de Celso González

' en Internet Explorer

Ayer me encontré un curioso problema debido a que el infame Internet Explorer cumple los estándares y el Firefox no.

Y tenemos un culpable: la entidad ' es decir el apóstrofe. La historia es debida a que ' no es una entidad válida en el estándar definitivo de HTML, pero fue introducido en XML siendo soportado en XHTML y aquí es donde empiezan los problemas en los navegadores antiguos que no saben de nuevos estándares.

IE no soporta xml, supongo que la versión 7 si que lo hará, así que al intentar procesar un archivo con doctype xhtml no sabe que esto es una entidad válida y lo muestra en html pero como en html no reconoce que esto sea una entidad lo muestra tal cual

s'ha acabat

Firefox si que sabe acerca de xml, así que con un doctype válido lo muestra como toca, sin embargo con cabeceras de doctype html4 y con código no válido según el validador de w3c, ya que esa entidad no existe, lo sigue mostrando como si fuese xhtml

s'ha acabat

Solución

Muy fácil, no usar '

Alternativas

Vale y ahora además necesitaremos alguna alternativa, la primera es usar el carácter del apóstrofe tal cual, es un carácter válido y no tiene que representar ningún problema al navegador, ya sea el IE el Firefox o si estamos sirviendo HTML o XHTML

¿Y si estas comillas abiertas no pueden porculizar a la base de datos, al lenguaje o a cualquier otra cosa? Pues sí, dependiendo de la implementación, así que la otra alternativa para representar el apóstrofe y que sea compatible hacia atrás es usar la entidad númerica ' que es la opción recomendada por w3c. De esta forma aseguramos la compatibilidad hacia atrás para navegadores que no soporten xhtml y a la vez evitamos riesgos de seguridad.

Resumen rápido

' malo &#39 bueno

mié 30 mayo 2007 16:500 comentarios