繁体   English   中英

如何防止浏览器将状态推入历史记录?

[英]How to prevent the Browser to push a state into the history?

我目前正在网站上,遇到以下问题:

假设我的网站名称是www.mysite.com. 在页面的第一次调用中,我的JavaScript检查URL中是否存在某些对于Web应用程序状态很重要的参数。 这些参数例如:

lang - language --> lang=1 means German
page - current Page --> page=home means its the homepage
cats - categories --> cats=1,2,3 means that the default categories are 1,2 and 3

如果仅致电www.mysite.com,该脚本将检测到未设置任何参数。 然后它将设置默认参数。 基于带有井号的URL修改,我将URL设置为:

www.mysite.com/#/page=home&lang=1&cats=12,13,18

真正的问题是,在浏览器历史记录中设置了两个状态。 第一个是www.mysite.com,第二个是带有参数的复杂URL。

想象一下我目前在

www.mysite.com/#/page=home&lang=1&cats=12,13,18

然后按返回按钮。 浏览器将我带到

www.mysite.com

然后我的Javascript检测到没有参数,因此我再次进入

www.mysite.com/#/page=home&lang=1&cats=12,13,18

如何解决呢? 是否可以完全手动管理历史记录,以便我可以通过JavaScript推送每个状态?

谢谢!

切换到使用SessionStorage来存储参数,以及可选的回退到Cookie或其他内容。

然后,仅将标签用于您希望能够返回的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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