J'ai bien peur que cela soit impossible, mais y a-t-il un moyen de modifier la valeur de hachage d'une URL sans laisser une entrée dans l'historique du navigateur et sans recharger ? Ou faire l'équivalent?
En ce qui concerne les détails, je développais une navigation de hachage de base comme:
//hash nav -- works with js-tabs
var getHash = window.location.hash;
var hashPref = "tab-";
function useHash(newHash) {
//set js-tab according to hash
newHash = newHash.replace('#'+hashPref, '');
$("#tabs li a[href='"+ newHash +"']").click();
}
function setHash(newHash) {
//set hash according to js-tab
window.location.hash = hashPref + newHash;
//THIS IS WHERE I would like to REPLACE the location.hash
//without a history entry
}
// ... a lot of irrelavent tabs js and then....
//make tabs work
$("#tabs.js-tabs a").live("click", function() {
var showMe = $(this).attr("href");
$(showMe).show();
setHash(showMe);
return false;
});
//hash nav on ready .. if hash exists, execute
if ( getHash ){
useHash(getHash);
}
En utilisant jQuery, évidemment. L'idée est que dans ce cas précis 1) faire revenir l'utilisateur sur chaque changement d'onglet pourrait effectivement `` casser le bouton de retour '' en empilant des références inutiles, et 2) ne pas conserver l'onglet sur lequel il se trouve actuellement s'il appuie sur Actualiser est un ennui.