目标:取消在原页面,确认返回上一级
VUE3中代码(可在需要拦截的vue文件中,也可全局在app.vue中处理)
const onPopState = () => {
openConfirmModal({
title: '您还没有保存更改,确认返回吗?',
confirm: () => {
window.removeEventListener('popstate', onPopState)
window.history.go(-1)
}
})
}
onMounted(() => {
history.pushState(null, '', document.URL)
window.addEventListener('popstate', onPopState, false)
})
onUnmounted(() => {
// 在组件销毁前,移除 popstate 事件监听
window.removeEventListener('popstate', onPopState)
})
注:router的mode必须是hash
网友评论