javascript - 在不更改哈希值或 URL 的任何其他部分的情况下将历史条目添加到浏览器

标签 javascript browser-state

是否有技巧(可能使用 iframe...)在不更改哈希或 URL 的任何其他部分的情况下向浏览器添加历史记录条目,同时与旧浏览器兼容(不早于 ie8 - 没有 pushstate )?

我知道这听起来很奇怪,但这是这个问题背后的逻辑:

我正在做一个单页应用程序,我想摆脱 模态作为弹出窗口。我使用相同的技术,但我不想在实际页面上方放置一个 div,而是想隐藏整个页面并仅显示代表模态的 div。

这很好用,但是现在模式占据了整个页面,用户倾向于(这很正常)点击后退按钮取消操作并返回到上一页(在显示模态)。

我知道我可以导航到不同的页面(通过更改散列),但我不希望 URL 更改,因为目标不是它自己的页面,而只是一个模式(复制没有意义模态的 URL 并将其传递给其他人或为模态添加书签 - 就像弹出窗口中的任何普通模态一样)。

我还需要能够在用户完成操作(在模式中)或单击取消按钮的情况下删除此条目。

最佳答案

我发现一篇文章解释了可能的解决方案(使用 iframe...):from the book Ajax Design Patterns

我会尽快尝试一下,并让您知道结果。

关于javascript - 在不更改哈希值或 URL 的任何其他部分的情况下将历史条目添加到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681793/

相关文章:

javascript - jQuery "window.location.hash"- 获取哈希太晚了?

ajax - 如何使用 AJAX 获取 "bookmark"页面或内容?

javascript - JavaScript 中的正则表达式配置

javascript - Jquery历史记录,检查历史堆栈

javascript - 这两行代码有什么区别?

javascript - 在 Prototype/Scriptaculous 上带有 AJAX 拉取内容的可悬停工具提示(表现得像 Twitter 的)`

javascript - 在不更改 url 的情况下注入(inject)新的历史条目。就像谷歌地图一样

javascript - 具有 508 可访问性的 Angular 2

JavaScript 绑定(bind)对象