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

时间:2013-10-16 07:50:25

标签: javascript browser-history hashchange

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

假设我的网站名称为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,脚本会检测到没有设置任何参数。然后它将设置默认参数。基于使用hashmark的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推送每个状态?

谢谢!

1 个答案:

答案 0 :(得分:-1)

切换到使用SessionStorage存储参数,并可选择回退到Cookie或其他内容。

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