Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/03/2009, 04:02
AngelJ
 
Fecha de Ingreso: febrero-2009
Mensajes: 35
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: No-recarga de un menú flash en una web modular

Bueno, ya logré hace unos días solucionar el problema, dejo la solución por si puede servir a algún usuario más:


Lo primero se emplea el siguiente archivo .js (javascript / ajax)


Código:
	//xmlhttp.js
	
	//Function to create an XMLHttp Object.
	function getxmlhttp (){
		//Create a boolean variable to check for a valid microsoft active X instance.
		var xmlhttp = false;
		
		//Check if we are using internet explorer.
		try {
			//If the javascript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older active x object.
			try {
				//If we are using internet explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-internet explorer browser.
				xmlhttp = false;
			}
		}
		
		//If we are using a non-internet explorer browser, create a javascript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		
		return xmlhttp;
	}
	
	//Function to process an XMLHttpRequest.
	function processajax (serverPage, obj, getOrPost, str){
		//Get an XMLHttpRequest object for use.
		xmlhttp = getxmlhttp ();
		if (getOrPost == "get"){
			xmlhttp.open("GET", serverPage);
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					document.getElementById(obj).innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(null);
		} else {
			xmlhttp.open("POST", serverPage, true);
			xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.onreadystatechange = function() {
				if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
					document.getElementById(obj).innerHTML = xmlhttp.responseText;
				}
			}
			xmlhttp.send(str);
		}
	}
Evidentemente en el archivo html/php principal includes el fichero:

Código HTML:
<script type="text/javascript" src="xmlhttp.js"></script
Y finalmente realizamos cada una de las llamadas:

Código HTML:
<a href="index.html?page=X" onclick="processajax ('pageX.html','loquesea','get',''); return false;">Page X</a> 
En la definición del archivo inicial, al establecer los diferentes <div>, hay que añadir un id="loquesea" para identificar la parte que sólo queremos recargar.