Ver Mensaje Individual
  #50 (permalink)  
Antiguo 20/01/2009, 14:49
Avatar de daPhyre
daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
Respuesta: ¿Uso de # como variable?

Finalmente lo logré. Decidí cambiar la forma en que los accedía, eliminando la recarga de la página, haciéndolo más al estilo de la forma tradicional, pudiendo así de paso usarlos en forma accesible para quienes tienen desactivado JavaScript:

Código:
var cadena=location.href;
var pos=cadena.lastIndexOf('#')
document.write("<p>Espere mientras carga la página.</p>");
if (pos > 1){
 var url=cadena.substr(pos+1);
 loadurl(url+'.html', 'main');
}
else{
 loadurl('pagina1.html', 'main');
}

function loadurl(url, id){
	var cadena=location.href;
	var pos=cadena.indexOf('#')
	var posurl=url.indexOf('.')
	location.href=cadena.substr(0,pos)+'#'+url.substr(0,posurl);
	var pagecnx = createXMLHttpRequest();
	pagecnx.onreadystatechange=function() {
		if (pagecnx.readyState == 4 && (pagecnx.status==200 || window.location.href.indexOf("http")==-1))
		document.getElementById(id).innerHTML=pagecnx.responseText;
	}
	pagecnx.open('GET', url, true);
	pagecnx.send(null);
	return false;
}

function createXMLHttpRequest() {
	var xmlHttp=null;
	if (window.ActiveXObject) 
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) 
			xmlHttp = new XMLHttpRequest();
	return xmlHttp;
}
Y los links exactamente iguales que como siempre:

Código HTML:
<a href="pagina1.html" onclick="return loadurl('pagina1.html','main')">página 1</a> 
Como dije antes, la única diferencia que veo entre esta técnica y el Ajax común es que con este, se puede acceder a cierta página que se carga con Ajax directamente de la barra de direcciones. No un cambio muy abismal en vista ni en código, pero un excelente detalle para hacer un Ajax más accesible ¿Ustedes que opinan?
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...