0

ブラウザーを閉じると、サーバー側の機能をいくつか実行する必要があります。

サーバー側の機能の実行中に例外が発生した場合は、「操作が失敗しました」という警告メッセージを表示する必要があり、その場合はブラウザーを閉じてはなりません。

4

4 に答える 4

1

実際には、ユーザーがウィンドウを閉じるのを防ぐことはできません。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

于 2012-10-18T05:17:13.417 に答える
1

できません。

ブラウザ ウィンドウが閉じないようにすることはできません。これまで。onbeforeunloadハンドラー内で (HTTP 要求のような) 時間のかかる作業を実行することもできません。実際に許可されているのは、確認ダイアログを表示することだけです。

于 2012-10-18T05:22:56.893 に答える
0
window.onbeforeunload = WindowCloseHanlder;
function WindowCloseHanlder() {
    //Call ajax server code CallIntiateAjaxCalling();
    if (conditionfails) {
        alert("condition fails")
            return false;
    }
}
于 2012-10-18T06:46:46.160 に答える
0

おそらく、このコードを使用できます

<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>
于 2012-10-18T05:09:39.353 に答える