繁体   English   中英

在用户离开页面时提醒用户

[英]Alert user when they are leaving a page

我想提醒用户何时离开页面,无论是通过关闭选项卡或窗口,还是通过链接进入新的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)的页面时,它会弹出确认框。 但是,它在页面重定向弹出,因此,如果单击“取消”并尝试阻止默认事件,它将保留在重定向的页面上。 然后,如果您尝试离开该页面,则确认框将再次弹出,因为浏览器仍然认为它位于“展览/”页面上。

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

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

试试上面

您可以在角路由中使用'resolve'运行函数( docs router

我认为类似的东西应该起作用:

$routeProvider.when('/myPage', { templateUrl: 'myPage.html',
        resolve: {
            myFunction: function ($route) { 
               if (myCondition) {
                   $location.url('/myPage');
                   return;
               } 
            }
        }
    });

您还可以在事件$routeChangeStart上放置一个侦听$routeChangeStart ,并根据情况进行中断。 请在此处查看解决方案它可能会对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM