Cosas web, algunas úles, algunas buenas.
Fushioko, tiendas de productos de Asia

martes, agosto 29, 2006

Mi amigo el IE

Acabo de leer esta entrada de aNiego2K sobre los cambios que trae la nueva versión de Internet Explorer y me he ha venido a la mente que ayer mismo tuve malos pensamientos sobre la familia de Bill Gates (no, no hay mente sucia en esto).

El hecho es que ayer en un página en la que estoy trabajando, tenía que modificar el contenido de una capa que contenía el típico calendario popup, y cuando pulsaba para ir al siguiente mes usaba la propiedad innerHTML para modificar su contenido. La capa contenedora, estaba creada mediante DOM (supongo que por aquí venía el problema) y luego su contenido lo actualizaba mediante innerHTML (pasaba de estar creando objetos como un loco mediante DOM). La primera vez que actualizaba el contenido me lo hacía a la perfección, la siguiente vez me daba un precioso mensaje de error ("no está permitida esa operación" o algo así) justo cuando modificaba el valor de innerHTML. ¿Por? ni idea, supongo que podría ser por crear el objeto usando DOM, pero no tenía tiempo para investigar, ni hacer un estudio, ni nada de nada, tenía cosas más importantes que hacer (hacer la cena y ver la tele). Por lo que después de muchos intentos, lo único que me funcionó fue lo siguiente:

function modificaCalendario(fecha1, fecha2, id) { /* INCREIBLE EL IE ME OBLIGA A ESCRIBIR ESTO */ document.getElementById(id).removeChild(document.getElementById(id).firstChild); var capa = document.createElement("DIV"); capa.innerHTML = creaCalendario(fecha1, fecha2, id); /* FIN DE MI ODIO A IE */ document.getElementById(id).appendChild(capa); }

Gracias Bill por hacerme pasar horas delante del ordenador comiendome la cabeza y así evitando que la tele tonta me fría el cerebro.