how to change url without changing browser history

JavascriptHtmlBrowser History

Javascript Problem Overview


Until now, I only know that if I want to change URL without reloading the whole page i have to use HTML browser history API.

I am using this concept in my website. Let's take example. Let suppose user is on this page

 https://www.example.com/aboutus

and then he goes to product listing in which we have filters. On clicking any filters system generates new url something like this

https://www.example.com/products?brands[]=song&brands[]=samsung&condition[]=new

Internally it is just calling

history.pushState({}, 'Title', link.href);

But, it has one problem. Clicking back button takes to the previous filter. I dont want this functionality. I want , on clicking browser back button it should take to the page which is before current page. In our case, it is suppose to take to

https://www.example.com/aboutus

Thanks.

Javascript Solutions


Solution 1 - Javascript

You're looking for replaceState(), it replaces the current position in the history instead of pushing a new one, like pushState() does

history.replaceState({}, 'Title', link.href);

from MDN

> history.replaceState() operates exactly like history.pushState() > except that replaceState() modifies the current history entry instead > of creating a new one. > > replaceState() is particularly useful when you want to update the > state object or URL of the current history entry in response to some > user action.

Remember, some functions are not available on older browsers. But there is a library that could help you out.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionParitosh PiplewarView Question on Stackoverflow
Solution 1 - JavascriptadeneoView Answer on Stackoverflow