当我关闭浏览器时,我必须执行一些服务器端功能。
如果在执行服务器端功能时发生任何异常,我必须显示一条警告消息“操作不成功”,在这种情况下,浏览器不应关闭。
当我关闭浏览器时,我必须执行一些服务器端功能。
如果在执行服务器端功能时发生任何异常,我必须显示一条警告消息“操作不成功”,在这种情况下,浏览器不应关闭。
实际上,您不能阻止用户关闭窗口。但是,您可以通过您的消息提醒他/她,要求用户留下或离开页面,这通过绑定到onbeforeunload
事件来完成。
var showAlert = false;
window.onbeforeunload = function(){
$.ajax({
url: "serversideprcess.aspx",
async : false
}).done(function ( data ) {
if(data !="success")
showAlert = true;
}).fail(function(){
showAlert = true;
});
if(showAlert){
return "Operation unsuccessful";
}
}
ajax 请求必须是同步的:async : false
你不能。
您根本无法阻止浏览器窗口关闭。曾经。您也不能在处理程序中执行任何需要时间的工作(例如 HTTP 请求)onbeforeunload
——您真正可以做的就是显示一个确认对话框。
window.onbeforeunload = WindowCloseHanlder;
function WindowCloseHanlder() {
//Call ajax server code CallIntiateAjaxCalling();
if (conditionfails) {
alert("condition fails")
return false;
}
}
也许您可以使用此代码
<html>
<head>
<script type="text/javascript">
var hook = true;
window.onbeforeunload = function() {
if (hook) {
return "Did you save your stuff?"
}
}
function unhook() {
hook=false;
}
</script>
</head>
<body>
<a href="http://google.com">external link</a>
</body>
</html>