如果堆栈中没有历史记录,请返回历史记录或位置

时间:2014-04-01 17:35:38

标签: javascript browser-history

仅当历史记录堆栈为空(或不受支持)时,如何返回浏览历史记录或位置(引荐来源)。

我试图在JavaScript中实现此反向链接,如下所示:

<a href="javascript:history.length > 1 ? history.go(-1) : location.href=document.referrer;">Back</a>

假设我有三页ABC

此方案无效:

  • A开始,
  • 然后在新窗口中打开B
  • 使用后退链接(A,然后history.length)返回location.href=document.referrer页面
  • history.length增加到2
  • 按浏览器后退按钮或退格键返回B页面
  • 点击后退链接并显示错误(它应该返回到A,但仍停留在B,因为history.length为2且history.go(-1)无效

我通过此更改了实现(通过此suggestion):

<a href="javascript:history.go(-1);location.href=document.referrer;">Back</a>

但是这种情况不起作用:-> B -> C <- B <- C(错误,它应该转到A页面)

注意: ->表示转发,<-表示点击后退链接

0 个答案:

没有答案