我有这样的结构:购物车页面>结帐页面>外页
我需要能够在Checkout页面中检测用户是否已经回来(因为在外部页面出现问题并点击了Go Back)或者来自Cart页面。
我曾尝试使用document.referrer,但如果用户点击该页面(购物车页面),请返回外部页面。
如果我可以检查用户是否可以前进,那将是完美的。如果用户继续前进,那是因为用户在外部页面中单击了“返回”。
关于历史记录长度(如果来自外部页面,历史记录长度还有一页),我考虑过在cart中发送带有history.lenght的post变量,然后检查当前的history.length。如果差异为1,则来自购物车。如果是2,来自外部页面。问题是从Cart发送这个变量非常困难。可以是一个解决方案,但如果我只能修改Checkout将是完美的。
谢谢!
答案 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。然后转发到外部页面。如果用户回来,则当前页面是以#。
结尾的结帐这不是最优雅的解决方案,但它确实有效。