0

重複の可能性:
ajax 関数 onbeforeunload を実行するには?
ブラウザのクローズ イベントをキャプチャし、そのイベントで JavaScript を介して Web サービス メソッドにリクエストを行う方法

だから今、これは私のonbeforeunloadがどのように見えるかです

window.onbeforeunload = function (e) {
  var message = "Don't close me!",
  e = e || window.event;
  // For IE and Firefox
  if (e) {
    e.returnValue = message;
  }
  // For Safari
  return message;
};

これが私がやろうとしていることです。この関数が起動し、ページから移動するかどうかを選択するプロンプトが表示されます。彼らが立ち去ることを決定した場合にのみ、データベース レコードを閉じるために GET 要求を発行する必要があります。

このように設定した場合のテストから:

window.onbeforeunload = $.get("url_here")

これは簡単な修正でしたが、今ではプロンプトを表示できず、警告なしにウィンドウが閉じます。

また、それを実行するための確認機能を追加しようとしましたが、正しく機能していないようです。例えば

window.onbeforeunload = function(e){
  if(confirm("Are you sure?")){
    $.get("url_here");

    return true;
  }
}

これはもっと奇妙ですが、ほとんどの場合、メッセージがリテラル テキスト (「true」) と yes/no プロンプトでポップアップ表示されます。

4

1 に答える 1

1

これを見てください: http://jsfiddle.net/3kvAC/241と、このダイアログ ボックスが 1 秒間実行されて消えますか? そしてこれhttp://msdn.microsoft.com/en-us/library/ie/ms536907(v=vs.85).aspx

次のようになります。

$(window).bind('beforeunload', function(){
  return 'Are you sure you want to leave?';
});

$(window).unload(function(){
  alert('Bye.');
});
于 2013-01-18T16:35:31.763 に答える