5

我正在编写代码来创建类似于从时间线在 Facebook 上查看照片的用户体验......

  1. 查看时间线,单击照片,它会以模式打开
  2. 您刷新它会转到图像的专用页面
  3. 你回击并返回时间线

我通过HTML5 History API完成了大部分工作。这是单击图像时我正在做的事情...

  1. preventDefault()用来避免跟随链接(到图像页面),而是用 AJAX 加载带有图像的模式
  2. IpushState图片页面的 URI,因此它出现在地址栏中
  3. 现在我刷新并转到专用图像页面(步骤 #2 中的 URI)
  4. 然后我点击“返回”按钮,它会在地址栏中显示上一页 URI(即时间线),但我仍在图像页面上。

问题:在第 4 步,有没有办法绕过历史 API,让浏览器执行标准的“返回”操作,这样我就可以返回到上一页(即时间线)?

4

2 回答 2

0

你试过一个好的老式的history.go(-1);吗?

于 2013-04-04T07:20:04.297 回答
0

我这样做:

第 1 步- 保存初始页面 url(尚未更改)

var savedPageStateURL = window.location.pathname;

第 2 步- 替换当前历史状态(推送,仅替换)

window.history.replaceState( {}, null , url );

第 3 步- 恢复历史更改并返回到第一步的状态

if( 'pushState' in window.history && window.history.state )
    window.history.replaceState( {}, null , savedPageStateURL );
于 2015-02-15T15:39:36.563 回答