在我的购物车页面中,当访问者单击“更新”或“删除”时,购物车页面每次都会自然刷新,如果访问者单击浏览器的“后退”按钮,他们将在“更新”或“删除”之前到达上一个购物车页面“删除”。
因此,为了在单击浏览器“后退”按钮时进入购物车页面之前到达该页面,我终于可以使用它了(我的所有页面都使用 JavaScript 和 JQuery):
var myback = -1
$(".myordersubmitbutton").click(function() {
myback = myback - 1;
});
if(performance.navigation.type == 2)
{
window.history.go(myback);
}
我知道
performance.navigation.type
已被弃用,但目前它可以在 Chrome/Edge(桌面)上运行。
所以上面的代码工作得很好,它让访问者回到进入购物车之前。
但是两种浏览器(Chrome/Edge)都会在进入“进入购物车之前”之前重新加载所有页面,因此如果上面的代码运行
window.history(-4)
,它会加载页面-1,然后是-2,然后是-3,然后最终到达- 4
我的问题:(正如我读到的)
window.history(-4)
不应该从浏览器历史记录中直接跳回到该页面,而不是先重新加载之间的所有页面吗?谢谢
因此,因为每次“更新”或“删除”页面都会刷新,myback 将始终是:
var myback = -1
我在这些表单中添加了(因为“更新”/“删除”是一种表单)的 Java 功能:
echo "<input type=\"hidden\" value=\"$myback\" name=\"myback\">";
在 php 页面顶部:
$myback = $_REQUEST["myback"];
If($myback == "")
{
$myback = -1;
}
else
{
$myback = $myback -1;
}
我的 Java 现在是:
$(document).ready(function () {
if(performance.navigation.type == 2)
{
window.history.go(<?php echo $myback;?>);
}
});
现在它仍然按照正常的浏览器后退按钮刷新 1 次,但随后它会跳转到 window.history(-4),我可以接受这一点