我担心它可能是impossible,但是有没有一种方法可以改变URL 的散列值,而不在浏览器的历史和中留下一个条目,而不需要重新加载?或者做同样的事情?
就具体而言,我正在开发一些基本的散列导航,如下所示:
//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);
}显然,使用的是jQuery。这个想法是,在这个特定的例子中,1)让用户返回每一个选项卡更改可以通过堆积不必要的引用而有效地“打破后退按钮”,以及2)如果他们点击刷新,不保留他们当前所在的选项卡是一种恼人的事情。
https://stackoverflow.com/questions/2305069
复制相似问题