ฉันกลัวว่ามันอาจจะเป็นไปไม่ได้แต่จะมีวิธีเปลี่ยนค่าแฮชของ 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) ไม่เก็บแท็บที่กำลังใช้งานอยู่หากพวกเขากดรีเฟรช ความรำคาญ