Foros del Web » Programando para Internet » Javascript »

Funciona en FireFox pero no en IE

Estas en el tema de Funciona en FireFox pero no en IE en el foro de Javascript en Foros del Web. hola gente del foro. estuve haciendo un script q incluye html y javascript. resulta q hay una funcion javascript que inserta filas con inputs de ...
  #1 (permalink)  
Antiguo 03/06/2009, 10:17
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Funciona en FireFox pero no en IE

hola gente del foro. estuve haciendo un script q incluye html y javascript.
resulta q hay una funcion javascript que inserta filas con inputs de texto cuando es llamada, funciona a la perfeccion en firefox pero en IE no inserta nada.
He comprobado que entra a la funcion y al ciclo que hay dentro de ella..
sera que alguna de estas funciones no son aceptadas por IE?
les dejo la funcion agradeciendoles su ayuda..

Código:
function varias (numero)
{

var espacio=document.getElementById('campos');
var tabla=document.getElementById('agregar').cloneNode(true);
		
		var insertar=tabla.childNodes[1];
		for(i=0;i< numero;i++)
		{
			var fila=document.getElementById('materia').cloneNode(true);
			fila.childNodes[0].childNodes[0].name+=i;
			fila.childNodes[0].childNodes[1].id+=i;
			alert(insertar.appendChild(fila));
		}
		tabla.appendChild(insertar);
		espacio.appendChild(tabla);
}
les explico los parametros,
numero es el numero de filas a insertar.
campos es de tipo tr, donde se insertan celdas
agregar es un TD con una tabla dentro
materia en un Tr con un Td dentro y este con el Input que quiero insertar y seguido de un DIV
  #2 (permalink)  
Antiguo 03/06/2009, 10:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Funciona en FireFox pero no en IE

Hola:

Con el DOM es algo difícil de conseguir total compatibilidad... y sobre tu código, lo único que creo que puede crear conflicto es lo de modificar un atributo name... Si se trata de un array y vas a procesarlo en el servidor con php, tal vez sea mejor no modificarlo y ponerle un juego de corchetes para que php sepa que es un array...

Por cierto, aparece algún error...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 03/06/2009, 10:31
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Funciona en FireFox pero no en IE

No, no parece ningun error. ya he tratado de hacerlo quitando las lineas donde modifico el name y el id y tampoco inserta las filas. por cierto, antes de postear me fije que tenia un alert que puse para probar, detuve la carga, lo quite y volvi a postear pero envio 2 mnsajes. estoy tratando de eliminar el otro..

en fin.. con respecto al script. estos son los elementos que se clonan para insertar.

Código:
<td id="agregar">C&oacute;digos<table align="center" id="tab_mat"></table></td>
<tr id="materia"><td width="400" ><input type="text" size="6" maxlength="6" class="datospf" name="c_asigna" onblur="nomasig(this)"><div id="capa"></div></td></tr>
  #4 (permalink)  
Antiguo 03/06/2009, 10:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Funciona en FireFox pero no en IE

Hola:

También con las tablas puede haber problemas... y con espacios en blanco,,, un espacio en blanco puede considerarse un nodo de texto en unos navehadores, y en otros no se consideran... y otra cosa que no creo que sea el caso, es que entre un tag table y un tag tr siempre existe un tag tbody (o thead o tfoot) aunque no se declare.

Revisa esas cosillas, y si no te sirve pon más código...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 03/06/2009, 12:40
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Funciona en FireFox pero no en IE

Efectivamente el problema esta al insertar las filas, pues la tabla si es insertada ya que ella contiene la palabra "Códigos" y esta es mostrada en el navegador..
Antes de trabajar con el DOM lei sobre que el firefox reconoce el espacio en blanco como un elemento mas, y el internet explorer no. Pero he tenido cuidado en eso y lo he puesto todo en una linea.
  #6 (permalink)  
Antiguo 03/06/2009, 13:25
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Funciona en FireFox pero no en IE

He hecho varias pruebas y al parecer las filas si son insertadas pero en el navegador no se muestran, no se por que razon, pero puedo Acceder a los inputs extrayendo sus propiedades y a tributos y mostrandolas en alert, lo q me indica que si existen dentro de la tabla, pero no se el motivo por que no se visualizan..
  #7 (permalink)  
Antiguo 05/06/2009, 10:46
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
RESUELTO: Funciona en FireFox pero no en IE

Ya consegui el problema. Por estar trabajando con tablas en DOM, estas tienen diferente nomenclatura pues y no se accede a un Nodo hijo desde la tabla si no al TBODY o al THEAD o TFOOT.
este enlace lo explica mejor:

howtocreate.co.uk/tutorials/javascript/domtables

pues el arbol del DOM que se arma es diferente a la logica que yo aplicaba,

para insertar las filas use la funcion:


Código:
function varias (numero)
{
var espacio=document.getElementById('campos');
var insertar=document.getElementById('agregar').cloneNode(true);
		var tabl=insertar.childNodes[1];
		for(i=0;i< numero;i++)
		{
			var fila=document.getElementById('materia').cloneNode(true);
			fila.childNodes[0].childNodes[0].name+=i;
			fila.childNodes[0].childNodes[1].id+=i;
			tabl.tBodies[0].appendChild(fila);
		}
		insertar.appendChild(tabl);
		espacio.appendChild(insertar);
}
pues las filas van dentro de los tbodies, si no es asi el IE no lo reconoce pero al FireFox le da igual... Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.