Can't go back after changing [removed].href

2019-08-27 19:25发布

In my script I'm tracking what tab I am on in a web page using

window.location.href = #!hashName1

If I then click on another tab, it will go to #!hashName2

My issue is, if I click the back button, it just goes back to the state #!hashName1. I have to then click back once again to go back another page.

Is there any way to just have it go back a page and not back to the previous hash state?

Thanks

3条回答
贪生不怕死
2楼-- · 2019-08-27 20:07

The following worked perfectly:

I changed:

window.location.href = #!hashName1

to

history.replaceState("", "", #!hashName1);
查看更多
beautiful°
3楼-- · 2019-08-27 20:19

u can handle back button event like this

window.onhashchange = function() {
  goBack();
}

function goBack() {
    window.location.hash = window.location.lasthash[window.location.lasthash.length-1];
    //blah blah blah
    window.location.lasthash.pop();
}
查看更多
SAY GOODBYE
4楼-- · 2019-08-27 20:21

this will fire whenever you press back button and add previous url

 window.onbeforeunload = function() {
            window.location.href = document.referrer;
    }
查看更多
登录 后发表回答