浏览器返回(点击自定义返回)功能,两个页面跳转死循环解决方案!

最近项目中遇到到了,点击浏览器返回(或点击自定义返回)时,两个页面往复死循跳转,今天就把自己的解决方案总结如下,大家可参考下!

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>

希望对大家有所帮助!

在Vue中,可以使用Vue Router来实现点击浏览器返回按钮跳转到指定页面功能。具体实现步骤如下: 1. 安装Vue Router 在命令行中执行以下命令安装Vue Router: ``` npm install vue-router --save ``` 2. 创建Vue Router实例 在Vue应用的入口文件(例如main.js)中创建Vue Router实例,并将其挂载到Vue实例中。 ``` import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App), }).$mount('#app') ``` 其中,router是一个Vue Router实例,它定义了应用中的路由规则。 3. 定义路由规则 在router.js文件中定义路由规则。例如,可以定义一个路由规则,当用户访问路径为'/page1'时,跳转到Page1组件。 ``` import Vue from 'vue' import Router from 'vue-router' import Page1 from './components/Page1.vue' Vue.use(Router) export default new Router({ routes: [ { path: '/page1', name: 'Page1', component: Page1 } ] }) ``` 4. 在组件中使用$route对象 在需要使用$route对象的组件中,可以通过this.$route来访问$route对象。例如,可以在Page1组件中使用$route对象来跳转到另一个页面。 ``` <template> <div> <h1>Page 1</h1> <button @click="goToPage2">Go to Page 2</button> </div> </template> <script> export default { methods: { goToPage2() { this.$router.push('/page2') } } } </script> ``` 在这个例子中,当用户点击按钮时,会调用goToPage2方法,该方法使用this.$router.push('/page2')来跳转到路径为'/page2'的页面。 5. 在浏览器中测试 在浏览器中访问应用,并点击页面上的链接或按钮,测试是否能够正常跳转。当用户点击浏览器返回按钮时,应该能够返回到上一个页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值