vue针对弹窗打开后浏览器返回拦截处理

  beforeDestroy() {
    window.removeEventListener("popstate", this.goBack, false)
  },
  methods: {
    pushHistory() {
  // 保证弹窗关闭后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)
  }
}
posted @ 2023-01-31 09:39  吃饭七分饱  阅读(277)  评论(0编辑  收藏  举报