最近项目中遇到到了,点击浏览器返回(或点击自定义返回)时,两个页面往复死循跳转,今天就把自己的解决方案总结如下,大家可参考下!
A页面返回及跳转地址
<!-- 返回弹窗 -->
<div class="no_set">
<p class="text">确定要放弃我吗?</p>
<div class="set_btn">
<div class="cancel">我再想想</div>
<div class="go_set"><a href="javascript:;" onclick="gotoUrl('{$goto}');">去意已决</a></div>
</div>
</div>
<!--地址信息-->
<a href="javascript:gotoSelectAddressList();">我是收货人</a>
<script type="text/javascript">
//去选择收货地址
function gotoSelectAddressList(){
var addressListUrl = "__APP__/User/selectReceiveUser/itemList/{$cartIds}/rR/{:urlencode(urlencode($url))}";
localStorage.setItem("addrFrom",1);//这个设置是关键
window.location.href=addressListUrl;
}
//自定义返回功能
function gotoUrl(refer){
if(refer==""){
history.go(-1);
}else{
window.location.href=refer;
}
}
</script>
B页面选中返回A页面,A页面再次点击返回功能,可能会再次跳转到B,此时应该跳转到A的上一个页面!
B页面此JavaScript代码是关键
<script type="text/javascript">
onInit();
function onInit(){
var addrFrom = localStorage.getItem("addrFrom");
if(addrFrom){
localStorage.removeItem("addrFrom");
}else{
history.go(-2);//这个是关键,点击A页面返回自己跳转到A的上一页
}
}
</script>
希望对大家有所帮助!