18

私はこの簡単なコードを持っています -

$(window).bind('beforeunload', function(){
    alert("Good Bye")
});

Firefox、IE8 では問題なく動作しますが、Chrome では動作しません。それは既知の問題ですか、それとも代替手段はありますか?

実際に私がやろうとしているのは、ユーザーがブラウザを閉じようとするたびに詳細を記録することです.

function LogTime()
{
    jQuery.ajax({
      type: "POST",
      url: "log.php",
      data: "",
      cache: false,
      success: function(response)
      {
      }
    );
}

$(window).bind('beforeunload', function(){
    LogTime();
});

これはFirefoxではうまく機能しますが、Chromeでは機能しません

4

6 に答える 6

15

代わりに文字列を返します:

$(window).on('beforeunload', function(){
    return "Good bye";
});​
于 2012-05-21T06:45:35.913 に答える
7

すべてのブラウザでこれを試してください:-

window.addEventListener("beforeunload", function (e) {

  var confirmationMessage = "\o/";     
  e.returnValue = confirmationMessage;           
  return confirmationMessage;       

});
于 2017-11-28T10:00:36.230 に答える
6

Chromeで動作させるためにjQuery(document).readyに含める必要がありました

<script>
  jQuery(document).ready( 
    function () { 
      jQuery(window).bind('beforeunload',  
        function (e) {  

          [code here]

        } 
      );

    } 
  );
</script>
于 2012-09-27T15:20:52.773 に答える
6

以下を試してください:

$(window).on('beforeunload', function(){
  return "Good Bye";
});
于 2012-05-21T06:45:55.380 に答える
2

これを試して:

function LogTime(){

jQuery.ajax({
  type: "POST",
  url: "log.php",
  data: "",
  cache: false,
  success: function(response){

  }
});

}

 $(window).bind('beforeunload', function(){
     LogTime();
     return "You're leaving?";
 });

関数本体の最後にこのイベントの文字列を返せば、その文字列の前にコードを実行できるようです。

于 2013-11-13T08:37:49.337 に答える
0

ドキュメントをアンロードする直前に分析データを送信する必要がある場合は、XMLHttpRequest の代わりにnavigator.sendBeacon()メソッドを選択します。

sendBeacon() メソッドは、少量のデータをノンブロッキングで送信するように設計されています。

ただし、メソッドはまだグローバルにサポートされていないため、最初にcanIuse レポートを確認してください。

于 2017-12-17T14:48:08.077 に答える