Korkarım bu imkansız olabilir , ancak tarayıcının geçmişinde bir giriş bırakmadan ve yeniden yüklemeden bir URL'nin karma değerini değiştirmenin bir yolu var mı? Yoksa eşdeğeri mi?
Ayrıntılara gelince, şu satırlar boyunca bazı temel hash navigasyonu geliştiriyordum:
//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);
}
Tabii ki jQuery kullanmak. Buradaki fikir, bu belirli durumda 1) kullanıcının her sekme değişikliğine geri dönmesini sağlamak, gereksiz referansları biriktirerek etkili bir şekilde 'geri düğmesini kırabilir' ve 2) yenilemeye basarlarsa o anda hangi sekmede bulunduklarını korumamaktır. bir sıkıntı.