检测用户是否返回(返回事件)或是否可以继续

时间:2015-01-18 22:37:19

标签: javascript jquery html ajax

我有这样的结构:购物车页面>结帐页面>外页

我需要能够在Checkout页面中检测用户是否已经回来(因为在外部页面出现问题并点击了Go Back)或者来自Cart页面。

我曾尝试使用document.referrer,但如果用户点击该页面(购物车页面),请返回外部页面。

如果我可以检查用户是否可以前进,那将是完美的。如果用户继续前进,那是因为用户在外部页面中单击了“返回”。

关于历史记录长度(如果来自外部页面,历史记录长度还有一页),我考虑过在cart中发送带有history.lenght的post变量,然后检查当前的history.length。如果差异为1,则来自购物车。如果是2,来自外部页面。问题是从Cart发送这个变量非常困难。可以是一个解决方案,但如果我只能修改Checkout将是完美的。

谢谢!

1 个答案:

答案 0 :(得分:2)

我用history.pushState解决了模拟以#

结尾的新Checkout页面

在Checkout中我这样做:

var a = window.location.href;

if ( a.match(/#$/)) {
    window.location.replace("Cart Page");
} else {
    history.pushState({}, "", "#");
    setTimeout(function () { jQuery("#submit_form").click(); }, 4000);
}

Checkout网址第一次是正常的Checkout网址。然后,使用pushstate,就好像用户访问了以#结尾的Checkout url。然后转发到外部页面。如果用户回来,则当前页面是以#。

结尾的结帐

这不是最优雅的解决方案,但它确实有效。