如何防止浏览器将状态推送到历史记录中
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或其他东西。
然后仅对您希望能够返回的状态使用主题标签。
相关文章:
- window.location替换并传递URL历史记录条目中的变量
- Javascript历史记录转换为php行
- 浏览器何时记录历史记录
- 输入类型按钮返回历史记录并返回顶部
- HTML5历史记录-返回上一个完整页面按钮
- asp.net网站文件下载历史记录
- 使用Ajax的后退按钮历史记录,URL中没有散列
- 历史记录和通过JavaScript修改的HTML
- Javascript:历史记录未加载页面
- 通过js设置页面历史记录和页面内容
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 如何防止浏览器在历史记录中缓存HTML
- 如何将新的stateObject添加或附加到历史记录中
- 检查浏览器后退按钮历史记录
- React-router 在添加历史记录后不会渲染组件
- 如何返回可用的历史记录状态数
- 引导选项卡不适用于历史记录.返回选项
- 记录 iframe 的历史记录
- 计算历史记录中的页数