lunes, 14 de enero de 2008

IE7: La tortura

¿Que rayos pasa con el IE7? Alguien ha tratado de manipular el DOM? ¿Cómo se supone que debemos hacerlo?

En firefox (como creo que debe ser) para navegar por el dom, basta con usar el metodo de document.body.childNodes[x].... y listo! en cambio con internet exploder, parece que solo cuenta los nodos si son tipo 1. ¿De que se trata, siguen siendo nodos de todas formas no? Creo que de todas formas se puede llegar a cualquier elemento con lo siguiente childNodes.item(x). Personalmente me parece algo confuso y me parece mucho más fácil hacer cualquier cosa con Firefox que con IE, siendo un total 'noob' o aficionado en esto de la programacion para web.

Un claro ejemplo es un bug que tiene IE7 con el que me peleo muy seguido. IE7 tiene problemas para referirse a los nodos del DOM creados con el método document.creteElement('algo').

Para que el pobrecito IE7 pueda encontrar uno nodo creado de esta manera, tenemos que crear uan funcion para el evento que vaya a disparar esa referencia. A continuación les pongo un codiguillo que a mi me ha funcionado para poder hacer que al apretar un botón se borre algun nodo del DOM en IE7 y el buen Firefox:

if(navigator.userAgent.match("MSIE")!=null){//ie7 BUG workaround!!
alert("Usted esta usando un navegador chafa.");
botonQuitar.onclick=function(){quitarCondicion(this.parentNode.parentNode.id)}
}
else{ botonQuitar.setAttribute("onClick","quitarCondicion(this.parentNode.parentNode.id)");
}

Por cierto, una lista de bugs de IE7

¿Aun tienes dudas? Ve esto:
Internet Explorer APESTA

No hay comentarios: