我想提醒用户何时离开页面,无论是关闭标签页还是窗口,通过链接转到新网址等。目前,我有以下代码:
$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)这就是我想要的。但是,在重定向页面后会弹出,因此如果单击“取消”并尝试阻止默认事件,它将保留在重定向页面上。然后,如果您尝试离开该页面,则会再次弹出确认框,因为浏览器仍然认为它是在展览会上展开的。页。
我从另一个问题得到了我的解决方案,但那不适合我。如何获取它以便在重定向页面之前弹出确认框?
答案 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;
试试上面的
答案 1 :(得分:0)
你可以使用“解决”来运行一个功能。在angular-routing(docs router)
中我觉得这样的事情应该有效:
$routeProvider.when('/myPage', { templateUrl: 'myPage.html',
resolve: {
myFunction: function ($route) {
if (myCondition) {
$location.url('/myPage');
return;
}
}
}
});
您还可以在事件$routeChangeStart
上放置一个监听器,并根据您的情况进行中断。查看可能对您有用的解决方案here。