javascript - 警告 Vue Js 中未保存的更改

标签 javascript events vue.js alert dom-events

我试图提醒客户端我的一个 Vue 组件的 beforeRouteLeave (to, from, next) 路由 Hook 中未保存的更改。我想在导航或重新加载时显示以下提示:

enter image description here enter image description here

我正在尝试使用 window.onbeforeunload 事件,但未正确触发:

  beforeRouteLeave (to, from, next) {
    if (!this.changesSaved) {
            const answer = window.onbeforeunload = function(e) {
                return 'Do you really want to leave? you have unsaved changes!';
            };
          if (answer) {
            return next()
          } else {
            return next(false)
          }
    }
    return next()
  }

我在语法上做错了什么?

最佳答案

这可能是因为没有使用 windowunload,因为窗口从未真正卸载过?我不确定。但从 Vue 的工作方式来看,我认为这就是原因。

所以也许只使用确认?

beforeRouteLeave (to, from, next) {
if (!this.changesSaved) {
        const answer = window.confirm = function(e) {
            return 'Do you really want to leave? you have unsaved changes!';
        };
      if (answer) {
        return next()
      } else {
        return next(false)
      }
}
return next()
}

关于javascript - 警告 Vue Js 中未保存的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50776603/

相关文章:

vue.js - 没有 typescript 的 dotnet 核心 (vuejs)

javascript - 附有 javascript magic 的复选框不会取消选中

javascript - Dygraphs 实时趋势和同步

jquery - 保持文本区域和按钮等高

javascript - 如何将Javascript函数与按钮关联起来?

javascript - Vuejs : Axios post JSON data and Image data

javascript - Jquery-步骤 : jquery key events not working

javascript - 如何知道脚本 block 或 JavaScript 代码的生命周期?

javascript - 在 jQuery 中强制触发 domready?

unit-testing - 用 sinonjs stub vuex getters