J'ai peur qu'il pourrait être impossible , mais est-il un moyen de changer la valeur de hachage d'une URL sans laisser une entrée dans l'historique du navigateur et sans avoir à recharger? Ou faire l'équivalent?
Ce qui est des détails, j'étais en développement de base de hachage de la navigation le long des lignes de:
//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);
}
À l'aide de jQuery, évidemment. L'idée est que dans ce cas précis 1) faire en sorte que l'utilisateur de revenir sur chaque onglet changement pourrait effectivement se "briser le bouton de retour" par empilement inutile de références, et 2) ne pas retenir l'onglet dont ils sont actuellement sur si ils ont frappé l'actualisation est une gêne.