0
window.onbeforeunload( function() { 
      return "Are you sure?" ;
});

ページがアンロードされる前に AJAX 呼び出しを実行したいのですが、これを実現する他の方法はありますか? お待ちしております、ありがとう:)

4

2 に答える 2

0

ページのアンロード中に関数を実行する場合は、$(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呼び出しが正常に起動しました。

JSFiddleの例

また、ページのアンロードでajaxリクエストを実行している場合は、asyncをfalseに設定してみてください。

$.ajax({url:"http://localhost:80/ajax.php?", async:false});
于 2013-02-22T18:01:07.103 に答える
0

代わりにこれを試してください:

window.onpagehide(function() {
    return "Are you sure?";
}

これが役立つことを願っています!!

于 2013-02-22T17:52:45.493 に答える