how to change url without changing browser history

删除回忆录丶 提交于 2019-12-03 08:08:28

问题


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.


回答1:


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

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.



来源:https://stackoverflow.com/questions/20937280/how-to-change-url-without-changing-browser-history

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!