有什么方法可以在点击onbeforeunload确认对话框OK按钮后执行一些操作
Is there any way to perform some operation just after clicking the onbeforeunload confirmation dialog box OK button
我有以下代码:
var exitHandler=function(){
return "Are you sure you want to move from this page.";
}
angular.element($window).bind("beforeunload", exitHandler);
当我关闭浏览器选项卡时,它会打开一个弹出确认窗口:
"Are you sure you want to unload this page ?"
到这里没问题,但我想执行一些 API 调用,当用户单击 OK 按钮时,而不是 取消按钮。有什么办法吗?我必须在单击 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 调用 return 成功时,选项卡将关闭,如果 return 出错,选项卡将保持未关闭状态。
我个人搜索了很多相同的内容,这是我发现最有帮助的 link。 Is it possible to capture the user's answer when using onbeforeunload confirmation?
正如上面link中所解释的,只有在按下OK确认后才会执行卸载。所以你可以在那里写你的函数。这又是一次不幸,因为无法保证浏览器会 运行 卸载事件中的脚本。他们通常不会。
有些逻辑如果不依赖浏览器就能搞定就更好了。
我有以下代码:
var exitHandler=function(){
return "Are you sure you want to move from this page.";
}
angular.element($window).bind("beforeunload", exitHandler);
当我关闭浏览器选项卡时,它会打开一个弹出确认窗口:
"Are you sure you want to unload this page ?"
到这里没问题,但我想执行一些 API 调用,当用户单击 OK 按钮时,而不是 取消按钮。有什么办法吗?我必须在单击 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 调用 return 成功时,选项卡将关闭,如果 return 出错,选项卡将保持未关闭状态。
我个人搜索了很多相同的内容,这是我发现最有帮助的 link。 Is it possible to capture the user's answer when using onbeforeunload confirmation?
正如上面link中所解释的,只有在按下OK确认后才会执行卸载。所以你可以在那里写你的函数。这又是一次不幸,因为无法保证浏览器会 运行 卸载事件中的脚本。他们通常不会。
有些逻辑如果不依赖浏览器就能搞定就更好了。