【发布时间】:2013-10-16 07:50:25
【问题描述】:
我目前正在做一个网站,遇到了以下问题:
假设我的网站名称是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 推送每个状态?
谢谢!
【问题讨论】:
-
你能否让 Web 应用程序只使用默认值而不在 URL 中添加任何哈希值?
-
默认值是什么意思?
标签: javascript browser-history hashchange