提醒用户离开页面时

时间:2015-04-20 14:07:41

标签: javascript angularjs popup

我想提醒用户何时离开页面,无论是关闭标签页还是窗口,通过链接转到新网址等。目前,我有以下代码:

$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();
        }
    }
}

这样做会在离开页面时弹出确认框,其中包含'展会/' (一个URI)这就是我想要的。但是,在重定向页面后会弹出,因此如果单击“取消”并尝试阻止默认事件,它将保留在重定向页面上。然后,如果您尝试离开该页面,则会再次弹出确认框,因为浏览器仍然认为它是在展览会上展开的。页。

我从另一个问题得到了我的解决方案,但那不适合我。如何获取它以便在重定向页面之前弹出确认框?

2 个答案:

答案 0 :(得分:0)



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

试试上面的

答案 1 :(得分:0)

你可以使用“解决”来运行一个功能。在angular-routing(docs router

我觉得这样的事情应该有效:

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

您还可以在事件$routeChangeStart上放置一个监听器,并根据您的情况进行中断。查看可能对您有用的解决方案here