Foros del Web » Programando para Internet » Javascript »

Problema con getElementsByTagName en I.E.

Estas en el tema de Problema con getElementsByTagName en I.E. en el foro de Javascript en Foros del Web. Estoy usuando esto Código: "respuesta.getElementsByTagName("existe")[0].firstChild.data; " en firefox y chrome y funciona sin ningun problema, pero en internet explorer no me funciona, existe alguna alternativa ...
  #1 (permalink)  
Antiguo 06/02/2011, 22:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 64
Antigüedad: 15 años, 2 meses
Puntos: 1
Problema con getElementsByTagName en I.E.

Estoy usuando esto
Código:
"respuesta.getElementsByTagName("existe")[0].firstChild.data;
" en firefox y chrome y funciona sin ningun problema, pero en internet explorer no me funciona, existe alguna alternativa para esto?

El IE 8 me dice que se requiere un objeto y marca la linea donde aparece ese codigo.

Gracias de antemano.
  #2 (permalink)  
Antiguo 06/02/2011, 23:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con getElementsByTagName en I.E.

buenas...

te puedo asegurar que en iexplorer8 dicha funcion trabaja bien. la causa debe ser por otra razon. asegurate que respuesta sea un elemento en iexplorer8.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 06/02/2011, 23:04
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: Problema con getElementsByTagName en I.E.

Hola:

Me ha pasado a veces que no colaba algo en ie como en tu caso, y simplemente se trataba de un error de sintaxis que colaba en otros navegadores.

Esa línea en explorer funciona correctamente, te lo puedo asegurar
¿Tiene childNodes el tag existe[0]...?

Te recomiendo que chequees los posibles errores sintácticos o de contenido (los xml son muy estrictos)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 07/02/2011, 08:18
 
Fecha de Ingreso: febrero-2009
Mensajes: 64
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con getElementsByTagName en I.E.

Gracias a ambos por su tiempo, publico el codigo completo a ver si consiguen algun error, el xml devuelve siempre false o true, de eso estoy 100% seguro, el codigo lo tome de un ejemplo en la web y lo fui adaptando, la idea es implementarlo en un formulario para que se comprueben los datos introducidos en el mismo, lo tengo en el evento onblur:

Código:
var req;
var respuesta;
var ValUsu;

function leer_doc(url) {
 
 req = false;
 
 // Llama objeto XMLHttpRequest
 if (window.XMLHttpRequest) {
   req = new XMLHttpRequest();
   if (req.overrideMimeType) {
     req.overrideMimeType('text/xml'); 
   }
 
 // Si no funciona intenta utiliar el objeto IE/Windows ActiveX 
 } else if (window.ActiveXObject) {
   req = new ActiveXObject("Microsoft.XMLHTTP"); 
 }
 
 if(req!=null){
   req.onreadystatechange = procesarRespuesta;
   req.open('GET', url, true);
   req.send(null);
 } 
 
}

function autentica(Val){
ValUsu=Val;
if (ValUsu=="strCelNum"){
usuario = document.getElementById("strCelIni").value + document.getElementById(ValUsu).value;
}else{
usuario = document.getElementById(ValUsu).value;
}
	switch (ValUsu) {
	case "strUsu":
	case "strRefPor":
 	url = "../Script/ValRef.asp?usuario=" + usuario;	
	break;
	case "stremail":
	url = "../Script/ValRef.asp?mail=" + usuario;	
	break;
	case "strCelNum":
	url = "../Script/ValRef.asp?cel=" + usuario;	
	break;
	}
leer_doc(url);	
}

function procesarRespuesta(){
respuesta = req.responseXML;
var existe;
//existe = respuesta.getElementsByTagName("existe").item(0).firstChild.data;
existe = respuesta.getElementsByTagName("existe")[0].firstChild.data;
	if (existe=="true"){
		switch (ValUsu) {
			case "strUsu":
			alert("Nombre de usuario no disponible.");
			document.getElementById("strUsu").focus();
			return;
			case "stremail":
			alert("Esta dirección de correo eléctronico ya fue registrada.");
			document.getElementById("stremail").focus();
			return;
			case "strCelNum":
			alert("Este número de celular ya fue registrada.");
			document.getElementById("strCelNum").focus();
			return;
		}
    }else{
		switch (ValUsu) {
			case "strRefPor":
			alert("El nombre de usuario en el campo Referido por no existe.");
			document.getElementById("strRefPor").focus();
			return;
		}
}
}

Esto contiene el xml
Código:
response.write("<?xml version='1.0' ?><existe>true</existe>")
El I.E. muestra el signo de advertencia al tratar de disparar la funcion; dice error en la pagina, y cuando entre a ver el detalle dice se requiere un objeto y muestro el numero de linea que esta en rojo.

Cuando empece a realizar pruebas con este codigo, aunque daba el mismo error, validaba el campo; para verificar porque sucedia esto coloque un alert(respuesta); luego de la linea en rojo, mostraba dos mensaje con valor null, el tercero mostraba la cabecera del xml y un cuarto en null de nuevo.

Gracias por su tiempo y espero no haber complicado todo con el ultimo parrafo.

Última edición por mash180; 07/02/2011 a las 08:35 Razón: Agregar la info del XML

Etiquetas: Ninguno
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 02:52.