Hola gente. Me esta desesperando un poco esto de navegar con los botones de ir hacia adelante o atras con los navegadores. La cosa está en que con Firefox todo va perfecto. Pero con otros navegadores me da problemas diferentes.
Utilizo el plugin de jquery: jquery.history del que se puede bajar de aquí:
http://plugins.jquery.com/project/history
Con internet explorer 8, por ejemplo, abro una página, luego entro en la siguiente. Le doy para atras y va bien. Pero quiero ir hacia adelante y nada.. Tambien hay problemas cuando entro en unas pocas de páginas, cuando quiero ir a las anteriores llega un momento que cambia la url pero no el contenido.
Es un poco desesperante. ¿Debería de cambiar de plugin?
El código que utilizo es el siguiente:
Código:
$(document).ready(function()
{
//Esta función se utiliza para poder cargar páginas del historial:
function pageload(hash){
//var cache_not=Math.random();
if(hash){
var toLoad = hash+'.html';
$("#cont-pcpal-cuerpo").load(toLoad);
}
else{
//Comprobamos si estamos en la portada de la página:
var direc = window.location.href;
direc = window.location.href.match( /\/([^/]+)$/ );
if(direc == null || direc[1] == "index.jsp"){
//Se carga la portada de la página al abrir la página:
contenido.load("contenido/portada.html");
}
}
}
var enlaces = $("a");
var cargando = $("#cargando");
var contenido = $("#cont-pcpal-cuerpo");
$.history.init(pageload);
enlaces.livequery('click', function(e){
//Se deshabilita el comportamiento por defecto:
e.preventDefault();
//Creamos el hash para navegar en páginas con AJAX:
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
var enlace = $(this).attr("href");
mostrarCargando();
if(enlace != "#"){
contenido.slideUp("slow", function(){ contenido.load(enlace, ocultarCargando); } );
contenido.slideDown();
}
//Cargamos la página en el historial:
$.history.load($(this).attr('href').substr(0,$(this).attr('href').length-5));
return(false);
});
// Función para mostrar el mensaje de carga:
function mostrarCargando(){
cargando
.css({visibility:"visible"})
.css({opacity:"1"})
.css({display:"block"})
;
}
// Función para ocultar el mensaje de carga:
function ocultarCargando(){
cargando.fadeTo(1000, 0);
};
});
¿He hecho algo mal? ¿Debería ser otro plugin?
Un saludo