À l'aide d'un événement hashchange, je détecte le moment où un utilisateur clique sur le bouton "retour" dans un navigateur et je modifie l'URL en conséquence. Existe-t-il une meilleure façon de procéder pour la pagination ? Actuellement, je modifie l'URL après qu'un utilisateur ait cliqué sur mon contrôle de pagination de la manière suivante :
$(".pager").click(function(){
var start = null;
if ($.browser.msie) {
start = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
}
else {
start = $(this).attr('href').substr(1);
}
$('#start').val(start);
$.post("visits_results.php", $("#profile_form_id").serialize(),
function(data) {
$('#search_results').html(data);
location.href = "#visits=" + start;
});
return false;
});
Mon javascript pour détecter le bouton retour ressemble à ceci :
function myHashChangeCallback(hash) {
if (hash == "") {
$("#loadImage").show();
var no_cache = new Date().getTime();
$('#main').load("home.php?cache=" + no_cache, function () {
$("#loadImage").hide();
});
return false;
}
else {
// adding code to parse the hash URL and see what page I'm on...is there a better way?;
}
}
function hashCheck() {
var hash = window.location.hash;
if (hash != _hash) {
_hash = hash;
myHashChangeCallback(hash);
}
}
Je prévois actuellement de vérifier chaque hashtag et la valeur pour voir quelle page je dois charger, à moins qu'il n'y ait un meilleur moyen plus efficace.
Des idées ou des suggestions ?