मुझे डर है कि यह असंभव हो सकता है, लेकिन क्या ब्राउज़र के इतिहास में एक प्रविष्टि छोड़ने के बिना और फिर से लोड किए बिना 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) वर्तमान में यदि वे ताज़ा हिट करते हैं तो वे किस टैब को बरकरार नहीं रखते हैं। एक झुंझलाहट।