Código:
Se me presenta la siguiente incógnita, quiero usar la funcion procesarEventos() para instancias varias conexiones de AJAX, y por su puesto la idea es no copiar el código varias veces.addEvent(window,'load',inicializarEventos,false); function inicializarEventos() { // Mostramos los comentarios actuales // Asignamos el evento Onclick al boton1 var $ob0=document.getElementById('enlaceA'); addEvent($ob0,'click',presionBotonA,false); cargarPrograma('php/consultaA.php') ; } //Presionaron un Boton function presionBotonA(e) { cargarPrograma('php/consultaA.php') ; } //La variable es global para los manejos de eventos var $conexion0; function cargarPrograma(url) { if(url=='') { return; } $div= "divPrograma"; $conexion0=crearXMLHttpRequest(); $conexion0.onreadystatechange = procesarEventos; $conexion0.open("GET", url, true); $conexion0.send(null); } function procesarEventos() { var $idDivPrograma = document.getElementById($div); if($conexion0.readyState == 4) { if($conexion0.status==200) { $idDivPrograma.innerHTML = $conexion0.responseText; }else if($conexion0.status==404){ $idDivPrograma.innerHTML = 'La direccion no existe'; }else { $idDivPrograma.innerHTML = 'Error: '.$conexion0.status; } } else { $idDivPrograma.innerHTML ='<img src="/MI3/img/cargando.gif">'; } } //*************************************** //Funciones comunes a todos los problemas //*************************************** function addEvent(elemento,nomevento,funcion,captura){ if (elemento.attachEvent) { elemento.attachEvent('on'+nomevento,funcion); return true; } else if (elemento.addEventListener) {// elemento.addEventListener(nomevento,funcion,captura); return true; } else return false; } function crearXMLHttpRequest() { var xmlHttp=null; if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); return xmlHttp; }
El primer problema que tengo es que si le paso el ID del Div como parámetro a la función, se queda en un loop, y no me muestra nada. Lo que tuve que hacer fue llenar una variable local $div y llamarla desde la función procesarEventos(), de esta forma se resolvió el problema, pero mi pregunta es por qué no puedo pasar la variable cuando llamo a la función procesarEventos()???.
Ahora faltaría resolver lo de la variable global $conexion0, ya que si hago lo mismo que el caso anterior no me funciona la llamada al archivo.
Como podría arreglar la función procesarEventos() para que se pueda instaciar para llevar varios Divs, con paginas diferentes.
Gracias..