我正在结帐,并且有一个后退按钮,单击后会触发window.history.back()
。
工作正常,直到用户在购物车中进行了一些更改,然后页面重新加载和window.history.back()
的作用与window.reload()
相同,因为它获取了最后一页。
我知道最好的解决方法是通过用户输入将Ajax应用于此购物车更新,以保持window.history.back()
在进入购物车之前对上一页不可变。但这在此项目上是不可能的,这是一个临时的prestashop,可以在单击某些修改按钮之前保存window.history.back()
,然后再提交以保留后退按钮的功能。
由于私密性,我认为这是不可能的,但我想知道以前是否有人遇到过此问题,哪种解决方法会更好。
使用history.go(-2)
将向用户发送两步,因此在某些用例中不可行。
也许将全局计数器设置为-1
,然后在进入或重新加载购物车时将--counter;
用history.go(counter);
来解决问题
有什么建议来应对这种情况? 谢谢。
答案 0 :(得分:1)
已解决,请使用以下解决方法:
代码:
/* inside the page where we want to preserve the "back" URI */
<script>
var counter = 0;
if(window.name != ""){
/* if window.name is set, assign the value to var counter*/
counter = window.name;
} else {
/* if it's not, init to 0. */
counter = 0;
}
/* Set window.name to counter value minus 1. It will be set to -1 the first time you enter the cartPage (on this example case) and it will be changed to -2, -3 etc each time you reload. */
window.name = counter-1;
</script>
/* On global.js */
if(window.location.href.indexOf("cartPage") === -1) {
/* Reset window.name value if we're not on cartPage, to avoid errors */
window.name = "";
}
/* The button: */
<a onclick="history.go(window.name)"> go back </a>
希望它可以帮助某人。 干杯!
答案 1 :(得分:0)
尝试
window.location.replace(document.referrer);