javascript - 当用户离开页面时在 angularjs 中显示自定义确认框

标签 javascript angularjs angularjs-material

我的要求是在用户离开页面时未保存表单数据时显示自定义确认框。

我使用了 window.onbeforeunload 事件,它显示了谷歌浏览器相关的预定义确认框。当用户更改任何表单并尝试重新加载、选项卡关闭或路由更改时,我想显示 $mdDialog.confirm 并要求用户离开页面或留在同一页面上。我如何制作一个?

最佳答案

出于安全原因,不能这样做。您可以在 beforeunload event 的 MDN 页面中找到更多详细信息。 .

过去,您可以返回一个显示给用户的自定义字符串,但现在即使这样也被忽略了。您能做的最好的事情就是指示页面显示您已有的标准对话框。 (并且在某些浏览器和某些场景中,甚至可能会忽略该指令。)

另一种方法是在页面中包含一个用于离开表单的按钮。虽然这仍然不能阻止用户直接离开页面,但如果它足够明显,在许多情况下用户更有可能点击它而不是直接导航。它还可以作为被动提醒,提醒您表单需要明确保存或取消(当然,取决于您的具体细节)。

关于javascript - 当用户离开页面时在 angularjs 中显示自定义确认框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46741323/

相关文章:

javascript 只接受图像不工作

javascript - 使用 AngularJs ng-model 以 html5 形式格式化电话号码和 TaxId 号码

javascript - 使用angularJs显示来自socket io的数据

javascript - 使用 Chart JS 创建图表栏

wai-aria - 如何在 ngMaterial 中禁用 ngAria?

javascript - 如何使用 jquery .show() 在同一个父元素中应用一个函数?

javascript - 当从 `for` 循环内的 while 循环将值插入数组时,它会覆盖数组中的先前元素

javascript - 使用一个文件集成整个 Yeoman、AngularJS 项目

css - 在 Angular Material 设计中更改 md-focused 复选框的颜色

javascript - 循环中的数字测试