IE8 No aplica el css a elementos generados dinamicamente.

Hay que admitirlo, Microsoft ha dado algunos pasos en la dirección correcta con Internet Explorer 8. La herramienta para Developers si bien aun podrían mejorar un poco más son un agregado más que bienvenido e imprescindible para los desarrolladores web. Y también lo es el intento por acercase más a los estándares con lo cual alivia la tortura que era hacer páginas cross-browsers.

Sin embargo, cada nueva versión siempre trae algún problemita de esos interesantes y de difícil solución.

Un sitio que habíamos hecho, funcionaba perfectamente con Internet explorer 6, 7 y Firefox. Pero cuando lo probamos con Internet Explorer 8, algunas características habían dejado de funcionar. Increiblemente, si se visualizaba la página en “Compatibility Mode” se volvía a visualizar correctamente.

Analizando un poco el problema advertimos que no se estaban aplicando algunos de los estilos CSS. Y esos estilos que no estaban funcionando eran aquellos que se creaban dinámicamente, desde javascript.

Buscando en internet encontré el sitio stackoverflow donde ya se habían encontrado con este problema y ya habían publicado la solución.

Básicamente, en lugar de setear el atributo Class, se debe setear el atributo className. Siguiendo estas recomendaciones cambié mi código y quedó de la siguiente manera:
Un comentario importante, lo siguiente es código javascript utiliando una versión seguramente desactualizada de Prototype, es probable que en las versiones actuales ya este contemplado este comportamiento y lo hayan arreglado, pero en este proyecto actualizar la versión de Prototype no era una opción.

var dialog = new Element('div', {'class': 'dialog'});
dialog.className = "dialog"

Honestamente, no entiendo bien el motivo, pero de esta manera esta funcionando nuevamente y eso es lo que me importa. Si se quieren mayores detalles y otras diferencias pueden leer la página IEBlog a la cual fui referido por stackoverflow


One Response to “IE8 No aplica el css a elementos generados dinamicamente.”

  1. […] http://blog.soluciones3f.com.ar/2009/11/01/ie8-no-aplica-el-css-a-elementos-generados-dinamicamente/ […]

Discussion Area - Leave a Comment