window.onbeforeunload( function() {
return "Are you sure?" ;
});
ページがアンロードされる前に AJAX 呼び出しを実行したいのですが、これを実現する他の方法はありますか? お待ちしております、ありがとう:)
window.onbeforeunload( function() {
return "Are you sure?" ;
});
ページがアンロードされる前に AJAX 呼び出しを実行したいのですが、これを実現する他の方法はありますか? お待ちしております、ありがとう:)
ページのアンロード中に関数を実行する場合は、$(window).unload()を試すことができますが、ページのアンロードを停止したり、ユーザーをリダイレクトしたりすることはできません。また、一部のブラウザはアンロード時にアラートをブロックします。
$(window).unload(function(){
$.ajax({url:"http://localhost:80/ajax.php?", async:false});
alert('Bye.');
});
しかし、最善の策は次のようなことをすることです。
$(window).bind('beforeunload', function(){
$.ajax({url:"http://localhost:80/ajax.php?", async:false});
return 'Are you sure you want to leave?';
});
//これをIE9、Chrome、Firefoxでテストしたところ、毎回ajax呼び出しが正常に起動しました。
また、ページのアンロードでajaxリクエストを実行している場合は、asyncをfalseに設定してみてください。
$.ajax({url:"http://localhost:80/ajax.php?", async:false});
代わりにこれを試してください:
window.onpagehide(function() {
return "Are you sure?";
}
これが役立つことを願っています!!