【发布时间】:2013-04-04 07:14:48
【问题描述】:
我正在编写代码来创建类似于从时间线在 Facebook 上查看照片的用户体验...
- 查看时间线,单击照片,它会以模式打开
- 您刷新它会转到图像的专用页面
- 您回击并返回时间线
我通过 HTML5 History API 完成了大部分工作。这是单击图像时我正在做的事情...
- 我使用
preventDefault()来避免跟随链接(到图片页面),而是使用 AJAX 加载带有图片的模式 - 我
pushState图片页面的URI,所以它出现在地址栏中 - 现在我刷新并转到专用图像页面(步骤 #2 中的 URI)
- 然后我点击“返回”按钮,它在地址栏中显示上一页 URI(即时间线),但我仍然在图像页面上。
问题:在第 4 步,有没有办法绕过历史 API,让浏览器执行标准的“返回”操作,这样我就可以返回到上一页(即时间线)?
【问题讨论】:
-
加载模态之前可能是 pushState?
-
我猜你应该这样做是听 onpopstate
-
我实际上触发了
preventDefault()然后pushState然后是Ajax 调用。如果我在 Ajax 之前或在成功回调中触发pushState,也会出现同样的问题。 -
在不刷新页面的情况下是否可以工作(你实现了onpopstate)?
-
如果我从模式打开的时间线中单击照片,然后我回击,它会按预期返回到时间线。
标签: javascript jquery html history.js