ブラウザーを閉じると、サーバー側の機能をいくつか実行する必要があります。
サーバー側の機能の実行中に例外が発生した場合は、「操作が失敗しました」という警告メッセージを表示する必要があり、その場合はブラウザーを閉じてはなりません。
ブラウザーを閉じると、サーバー側の機能をいくつか実行する必要があります。
サーバー側の機能の実行中に例外が発生した場合は、「操作が失敗しました」という警告メッセージを表示する必要があり、その場合はブラウザーを閉じてはなりません。
実際には、ユーザーがウィンドウを閉じるのを防ぐことはできません。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
できません。
ブラウザ ウィンドウが閉じないようにすることはできません。これまで。onbeforeunload
ハンドラー内で (HTTP 要求のような) 時間のかかる作業を実行することもできません。実際に許可されているのは、確認ダイアログを表示することだけです。
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>