javascript - 当用户离开页面时提醒他们

标签 javascript angularjs popup

我想在用户要离开页面时提醒他们,无论是关闭选项卡或窗口,还是通过链接转到新的 URL 等。目前,我有以下代码:

$scope.$on('$locationChangeStart', function (event, next, current) {
    if (current.match("fairs/")){
        var answer = confirm("Are you sure you want to leave this page?");
        if (!answer) {
            event.preventDefault();
        }
    }
}

它的作用是在离开带有“fairs/”(URI)的页面时弹出确认框,这正是我想要的。但是,它会在页面重定向后弹出,因此,如果您单击“取消”并且它尝试阻止默认事件,它将保留在重定向的页面上。然后,如果您尝试离开该页面,确认框将再次弹出,因为浏览器仍然认为它位于“fairs/”页面上。

我从另一个问题中得到了解决方案,但这对我不起作用。如何获取它以便在页面重定向之前弹出确认框?

最佳答案

<script type="text/javascript">
     var popit = true;
     window.onbeforeunload = function() { 
          if(popit == true) {
               popit = false;
               return "Are you sure you want to leave?"; 
          }
     }
</script>

尝试上面的方法

关于javascript - 当用户离开页面时提醒他们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750209/

相关文章:

angularjs - sails.js 中实时刷新网页

javascript - jQuery on click 在父级之后移动一个 div()

javascript - 如何禁用下一步按钮,直到完成所有字段

angularjs - 引导一个 Angular 2 应用程序,与一个已经加载的 Angularjs 应用程序并排

javascript - JQueryMobile 中的弹出窗口/工具提示位置

javascript - 在 angularjs 中在父页面和弹出页面之间传递数据的最佳方法

jquery - 如何更改 jquery fancy box v2.1.4 中弹出框的大小?

javascript - 输入文本框焦点模糊事件

javascript - 文件系统是否运行在 javascript 的不同线程上

javascript - Angular - 在 ng-click 上从 Controller 运行函数