【问题标题】:Show popup when close tab in Vue Js在Vue Js中关闭选项卡时显示弹出窗口
【发布时间】:2021-11-10 10:01:49
【问题描述】:

我正在尝试在页面重新加载或在 Vue js 中离开我的网站时显示弹出窗口。 我刚刚在我的组件中实现了beforeRouteLeave 函数,但这仅适用于我转到站点中的另一个页面时,而不是当我外出或重新加载页面时。我刚刚尝试了window.addEventListener 功能,但弹出窗口出现在我的所有网站中。 我只想在这个 Vue 组件的页面中显示这个确认消息

有一些例子:

这是在 Vue 组件中:

beforeRouteLeave (to, from, next) {
  const answer = window.confirm('Confermation Message')
  if (answer) {
    next()
  } else {
    next(false)
  }
},

这是在 Vue 组件中,但在 export default 之外:

window.addEventListener('beforeunload', (event) => {
  if (logic) {
    event.returnValue = 'Sei sicuro di uscire? Le modifiche non salvate andranno perse'
  }
})

我该怎么办?

【问题讨论】:

    标签: javascript vue.js vue-router


    【解决方案1】:

    你可以的

    const confirmExit = () => window.confirm('Sei sicuro di uscire? Le modifiche non salvate andranno perse')
    
    window.addEventListener('beforeunload', evt => {
      if (!confirmExit()) {
        evt.preventDefault();
        evt.returnValue = true;
      }
    });
    

    然后在您的beforeRouteLeave 方法中,您还可以检查if (confirmExit()) 而不是if (answer)

    【讨论】:

    • 嗨 Vergil,问题仍然存在,如果我重新加载另一个页面,消息会显示,但我不想要它,我只需要在这个 Vue 组件的页面中显示这个消息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2020-09-25
    相关资源
    最近更新 更多