I have a backbone app where I want to open an overlay which is just a page with its own URL. You can also navigate in this overlay with different pages/URLs. So when the overlay is closed I want to set back the hash to the state before the overlay was opened. As the overlay is opened by a link I can't get the hash from the state before.
So is there a way to get the previous hash when a hash changed?
I have a backbone app where I want to open an overlay which is just a page with its own URL. You can also navigate in this overlay with different pages/URLs. So when the overlay is closed I want to set back the hash to the state before the overlay was opened. As the overlay is opened by a link I can't get the hash from the state before.
So is there a way to get the previous hash when a hash changed?
Share Improve this question edited Jul 4, 2024 at 20:08 Jason Aller 3,65228 gold badges41 silver badges39 bronze badges asked Jul 18, 2012 at 13:26 Andreas KöberleAndreas Köberle 111k58 gold badges280 silver badges307 bronze badges3 Answers
Reset to default 3The hashchange event has a "oldURL" field.... store all the "oldURL" (or only the last one) and, when you need it, change the actual url with the last url.
Source: https://developer.mozilla/en/DOM/window.onhashchange
I came up with this little hack. When the the overlay is opened I store the window.history.length
. When the overlay is closed I call window.history.go
with the difference between the stored length and the actual and subtract 1.
var appStateActions = {
overlayPre: function(){
this.historyPosition = window.history.length;
},
overlayExit: function(){
window.history.go(this.historyPosition - window.history.length -1);
}
}
Unfortunately this doesn't work cause of the limit of the history. So you get a wrong result after you reach the the limit of history length.
var historyurl =[];
$(window).on('hashchange', function(e){
historyurl.push(location.hash);
if(historyurl.length > 2){
historyurl.splice(0,historyurl.length-2)
};
});
console.log("Last Hah Url ="+historyurl[0])
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745115886a4612124.html
评论列表(0条)