简体   繁体   中英

Can't go back after changing window.location.href

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

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();
}

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

 window.onbeforeunload = function() {
            window.location.href = document.referrer;
    }

The following worked perfectly:

I changed:

window.location.href = #!hashName1

to

history.replaceState("", "", #!hashName1);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM