vue离开页面弹窗提示

您所在的位置:网站首页 如何阻止页面弹窗提示 vue离开页面弹窗提示

vue离开页面弹窗提示

2023-09-06 04:09| 来源: 网络整理| 查看: 265

vue离开提示弹窗分类 一:关闭页签、网页或刷新 mounted() { window.addEventListener("beforeunload", this.beforeUnloadHandler, false) }, destroyed() { window.removeEventListener("beforeunload", this.beforeUnloadHandler, false) }, methods: { beforeUnloadHandler(e) { e.returnValue = "离开此页面?" // 此处返回任意字符串,不返回null即可,不能修改默认提示内容 }, } 二:vue页面返回上一层路由

不断点击浏览器返回键或通过按钮触发this.$router.go(-1)再点击取消按键,beforeRouteLeave不执行next()时,url会变为上一层的url,页面不会切换到上一层,停留在当前页面

不做处理,浏览器地址栏的url会不断返回上一层,此时再点离开按键则返回的可能不是上页的url

所以,需要记录当前页面url并在取消的时候推回路由栈中

data() { return { currentUrl: "" } }, mounted(){ // 记录当前页面url this.currentUrl = window.location.href } beforeRouteLeave(to, from, next) { this.$confirm("系统可能不会保存您所做的更改。", "离开此页面?", { confirmButtonText: "离开", cancelButtonText: "取消", type: "warning" }) .then(() => { // confirmButton回调 next() }) .catch(() => { // cancelButton回调,把当前页路由推回 // 不能使用this.$router进行路由操作,会触发beforeRouteLeave导致死循环 window.history.pushState("", "", this.currentUrl) }) }, back() { // 页面中按键触发 this.$router.go(-1) }

什么,你说你狂点浏览器的返回键会粗问题?噢,那太骚了,我顶不住了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3