vue针对弹窗打开后浏览器返回拦截处理
beforeDestroy() {
window.removeEventListener("popstate", this.goBack, false)
},
methods: {
pushHistory() {
// 保证弹窗关闭后url不变
// 保证弹窗关闭后url不变
window.history.pushState({}, null, location.href);
},
openSelect() { // 打开弹窗
this.showSelect = true
this.pushHistory() // 往历史中写入
// 监听;浏览器返回
// 监听;浏览器返回
window.addEventListener("popstate", this.goBack, false)
},
// 浏览器返回时阻止并关闭弹窗
// 浏览器返回时阻止并关闭弹窗
goBack() {
this.showSelect = false
},
// 主动关闭
closeSelect() {
// 主动关闭弹窗后历史要清除掉
// 主动关闭弹窗后历史要清除掉
window.history.go(-1)
}}