La cosa es así. Imagina que tienes la siguiente fila de una tabla:
<tr id='filatabla'><td>contenido</td><tr>y que quieres cambiar ese contenido por
<td>nuevo contenido</td>Lo normal es usar un InnerHTML de esta forma:
document.getElementById('filatabla').innerHTML='<td>nuevo contenido</td>';¿no?
Pues esto en Explorer casca. Lanza un muy aclaratorio "Error desconocido en tiempo de ejecución" que no te ayuda en nada a descubrir lo que pasa.
Tras mucho investigar, la razón parece ser que es el hecho de que IE no permite usar InnerHTML con ciertos elementos de una tabla.
Lo cual es cachondísimo, porque para añadir dinámicamente filas a una tabla se emplea una función tal que así
function addFila(fila){Y esto sí que funciona en ambos navegadores, ya que Explorer sí permite usar innerHTML con una celda individual.
nuevaFila = document.getElementById('tabla').insertRow(-1);
nuevaFila.id='filatabla'+indiceFilaFormulario;
nuevaCelda=nuevaFila.insertCell(0);
nuevaCelda.innerHTML=fila;
indiceFilaFormulario++;
}
Lo dicho, puto explorer. Vaya tarde de domingo que he pasado por culpa de sus chorradas
8 comentarios:
Gracias por esto, me has salvado la vida
El asunto es que el innerHTML para los tr es de solo lectura, osea solo se puede obtener su valor, mas no fijarle un nuevo valor
Entonces se debe utilizar el innerText.
Lo probe de esta forma y funciona
Fíjate. Pues eso sí que no lo sabía. Gracias!
Gracias, no ha solucionado el problema pero me acercaste increiblemente a la respuesta THKS.
PD:te doy las gracias desde el otro lado de mundo (CHILE)
Mil gracias, ahora todos juntos PUTO INTERNET EXPLORER.
El trabajo de todo una tarde a la mierda.
Eres un crack, va como un tiro.
El innerTEXT no funciona en Firefox pero si en explorer A si que tendreis que detectar el navegador y utilizar innerHTML o innerTEXT dependiendo del navegador.
Un saludo ;)
Publicar un comentario