Cita:
Iniciado por Deathmetalrules bueno yo lo reviso si no lo entiendo te escribo muchas gracias por coolaborarme
con lo del
hash
---------------------------------------
lo e probado y te corrijo esto,
-> pp2.php queda igual
-> pp.php seria asi
Código HTML:
Ver original<script type="text/javascript"> function iniciar() {/*inicia el proseso*/cargaPagina(window.location.hash);}
function cargaPagina(hash) {
errorDeTiempo = setTimeout("declaraError('contendioPerfil')", esperaMax);
hashDefecto = hash;
hash = hash.replace(/^\#/, ""); // limpia el hash quita el # par colocar despues el ?
if(hash.length > 0) hash = hash;
cargaContenido("pp2.php",hash,muestrame,'GET','rex');// llama a la funcion ajax para enviar al php
}
function muestrame() {
var pagina=document.getElementById('contendioPerfil');
if (peticion_http.readyState == 4) {
if(peticion_http.status==200) {clearTimeout(errorDeTiempo);
tiempoPagina = setTimeout("comprobarHash()", espera);
pagina.innerHTML = peticion_http.responseText;
} else if(peticion_http.status==404){pagina.innerHTML = '
<div class="avis carga">La pagina no existe
</div>';
} else {preloader.innerHTML = '
<div class="avis carga">Error > fatal: por favor avisar al administrador
</div>';}
} else {
pagina.innerHTML = '
<div class="avis carga">Cargando la pagina...
</div>';
}
}
<div id="error" style="display:none"> Paso un error
<h1>No esta ativado el js
</h1>
<li><a href="#p=citas">Citas
</a></li> <li><a href="#p=amigos">Mis referidos
</a></li> <li><a href="#p=ofertasMias">Ofertas
</a></li> <li><a href="#p=este es un contedino muy largo">este es un contedino muy largo
</a></li>
<div id="contendioPerfil" class="ctnPerfil"> <!----------------->
<script type="text/javascript"> document.getElementById('error').style.display='none';
document.getElementById('avisos').style.display='none';
window.onload = iniciar();
-> pp.js quedaría asi :
Código Javascript
:
Ver original// definimos estandares
var peticion_http = null;
var hashDefecto = null;
var errorDeTiempo = null;
var tiempoPagina = null;
var esperaMax = 12000;
var espera = 800;
// funciones ajax
// creamos objeto
function inicializa_xhr() {
if(window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
// ajax
function cargaContenido(url,variables,funcion,metodo,ab) {
peticion_http = inicializa_xhr();
metodo = metodo || 'GET';
ab = ab || '';
if(peticion_http) {
if (ab=='rex') {cuentraAtras = setTimeout("comprobarHash()", esperaMax);}
if(metodo == 'POST'){
peticion_http.open('POST', url, true);
peticion_http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
peticion_http.send(variables);
} else {
url = url+'?'+variables;
peticion_http.open('GET', url, true);
peticion_http.send(null);
}
peticion_http.onreadystatechange = funcion;
}
}
// error de espera a la carga
function declaraError(contenedor) {
/* si a supera el tiempo de esperaMax se prosede este metodo*/
if(errorDeTiempo) {clearTimeout(errorDeTiempo);}
if(tiempoPagina) {clearTimeout(tiempoPagina);}
document.getElementById('avisos').style.display='none';
document.getElementById('error').style.display='';
document.getElementById(contenedor).style.display='none';
}
// controles de tiempo y carga
function comprobarHash() {
tiempoPagina = setTimeout("comprobarHash()", espera);
if(hashDefecto == window.location.hash) return;
cargaPagina(window.location.hash);
}
function abortar() {
// La cuentra atrás se ha cumplido, detener la petición HTTP pendiente
peticion_http.abort();
alert("Se ha producido un error en la comunicación con el servidor. Inténtalo un poco más adelante.");
}
//////////////////////////////////////