这篇文章主要介绍“vue怎么清除浏览器历史栈”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么清除浏览器历史栈”文章能帮助大家解决问题。
需要跳转好几个页面进行表单提交,提交完之后,跳转回首页,返回上一页,发现还可以返回上一级页面路由
//可以拿到历史记录栈,清空栈 let routeHistory=history.length-1; this.$router.go(-routeHistory);
A页面点击路由到B页面
B页面点击路由到C页面
C页面点击路由链接到D页面
D页面有个返回首页按钮
那么问题来了
点击返回首页后,再点击手机的返回键 会打开D页面 再按手机返回键 会打开C页面,依次类推,
如何才能实现点击返回首页后,清空路由呢
mounted () { if (window.history && window.history.pushState) { // 向历史记录中插入了当前页 history.pushState(null, null, document.URL); window.addEventListener('popstate', this.goBack, false); } }, destroyed () { window.removeEventListener('popstate', this.goBack, false); }, methods: { goBack () { // console.log("点击了浏览器的返回按钮"); sessionStorage.clear(); window.history.back(); }, }
禁止有返回记录
mounted () { if (window.history && window.history.pushState) { // 向历史记录中插入了当前页 history.pushState(null, null, document.URL); window.addEventListener('popstate', this.goBack, false); } }, destroyed () { window.removeEventListener('popstate', this.goBack, false); }, methods: { goBack () { // console.log("点击了浏览器的返回按钮"); history.pushState(null, null, document.URL); }, }
mounted 中: if (window.history && window.history.pushState) { history.pushState(null, null, document.URL); window.addEventListener("popstate", _this.onClickLeft, false); //_this.onClickLeft是返回的点击事件 }
methods: { onClickLeft() { // this.$route.query.radio支付页面到指定页面传的参数 来判断他的路由 if (this.$route.query.radio == 1 || this.$route.query.radio == 2) { this.$router.push({ //返回指定页面 }); } else { this.$router.go(-1); // 正常返回 } },
// 将事件清除掉 destroyed() { window.removeEventListener("popstate", this.onClickLeft, false); }
关于“vue怎么清除浏览器历史栈”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。