Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Llamar a método desde onreadystatechange

Estas en el tema de Llamar a método desde onreadystatechange en el foro de Frameworks JS en Foros del Web. Tengo un objeto que como propiedad tiene otro objeto, el cual es ajax en si (el objeto XMLHTTP). Necesito que el evento onreadystatechange llame a ...
  #1 (permalink)  
Antiguo 23/12/2008, 07:30
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 20 años, 1 mes
Puntos: 0
Llamar a método desde onreadystatechange

Tengo un objeto que como propiedad tiene otro objeto, el cual es ajax en si (el objeto XMLHTTP).

Necesito que el evento onreadystatechange llame a un método del objeto 'padre'.

¿Como es posible esto?.

Pongo el código

Código:
function oTexto(pNumPag) {
	//
  this.Cuantos = 0;	
  this.NumPag = pNumPag;
	//
  WUrl = "./php/MAU/AccederBd.php";
  //WPreloader=document.getElementById('preloader');	
  if (pNumPag == 0) {
		WParam = "Accion=SelectTodo&Tabla=lb_texto";
	} else {
		WParam = "Accion=SelectPag&Tabla=lb_texto&NumReg=0&MaReg="+pNumPag;
	}
	this.ajax = new oAjax();
	this.ajax.A.open("POST", WUrl, true);
	this.ajax.A.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	this.ajax.A.setRequestHeader("Content-length", WParam.length);
	this.ajax.A.setRequestHeader("Accept-Charset", "UTF-8");
	
	/*
	this.ajax.A.onreadystatechange = function() {

		if (this.readyState == 1) {
			//WPreloader.style.background = "url('./panel/imgs/AjaxLoader.gif') no-repeat"; 
		} else if (this.readyState == 4) {
			if (this.status == 200) {
				//WPreloader.style.visibility = 'hidden';
				oTexto.MostrarTexto();
			}
		}
	};
	*/
	this.ajax.A.onreadystatechange = this.ControlAjax;
	
	this.ajax.A.send(WParam);
}
Resumiendo:

el objeto oTexto tiene una propiedad Ajax que es el objeto xmlhttp. Necesitaria que al finalizar ok la llamada al módulo php se ejecutara el método MostrarTexto de oTexto.

Gracias.
  #2 (permalink)  
Antiguo 23/12/2008, 10:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 20 años, 1 mes
Puntos: 0
Respuesta: Llamar a método desde onreadystatechange

Solucionado.

He asignado this a una variable dentro del constructor de la clase:

Código:
	var rthis=this;
		
	this.ajax.A.onreadystatechange = function() {
		if (rthis.ajax.A.readyState == 1) {
			//WPreloader.style.background = "url('./panel/imgs/AjaxLoader.gif') no-repeat"; 
		} else if (rthis.ajax.A.readyState == 4) {
			if (rthis.ajax.A.status == 200) {
				//WPreloader.style.visibility = 'hidden';
				rthis.MostrarTexto();
			}
		}
	};
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:30.