我有以下代码:
var exitHandler=function(){
return "Are you sure you want to move from this page.";
}
angular.element($window).bind("beforeunload", exitHandler);
当我关闭浏览器标签时。打开弹出确认信息:"您确定要卸载此页面吗?"直到这里还可以。但是我想在用户点击OK按钮时执行一些api调用,而不是在CANCEL按钮上。有没有办法做到这一点。我必须在点击OK按钮后执行此操作:
Participant.setDorateStatus({id:localData.userId},{dorate2status:true})
.$promise.then(function(data) {
console.log(data)
endExperiment=data;
})
.catch(function(err) {
if (err.status != 401)
$scope.addNotification("something went wrong.", "danger", 5000);
})
我希望当api调用返回成功然后选项卡将关闭,如果它将返回错误选项卡将保持unclose。在此先感谢:)
答案 0 :(得分:1)
我个人搜索了很多相同内容,这是我发现最有帮助的链接。 Is it possible to capture the user's answer when using onbeforeunload confirmation?
如上面的链接所述,只有在按下OK确认后才执行卸载。所以你可以在那里写你的功能。再次,这是一个艰难的运气,因为没有guaratee浏览器将在卸载事件中运行脚本。他们通常不会。
如果你可以在不依赖浏览器的情况下锻炼,那就更好了。