重複の可能性:
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 プロンプトでポップアップ表示されます。