0

重複の可能性:
javascript がブラウザーのタブを閉じる/ブラウザーを閉じることを検出する

PHP でリアルタイム ゲーム サイトを作成しています。ブラウザを閉じるときに関数を呼び出したいのですが、php または javascript を使用してブラウザを閉じたことを検出するにはどうすればよいですか? onbeforeunload および onunload イベントを使用してみましたが、これらのイベントは、ウィンドウが更新されたり、戻るボタン、進むボタンなどを使用して移動したりした場合でもトリガーされることがわかりました。また、これらのイベントは、すべての一般的なブラウザーでうまく機能しません。すべてのブラウザーで適切に実行されるウィンドウ クローズ イベントのみを検出する方法はありますか?

前もって感謝します

4

1 に答える 1

2

Web サイトにアクセスしたときに 1 に設定される PHP でセッションを (タイムアウト付きで) 設定し、セッションを再度 1 に設定する関数を呼び出すタスクを 20 秒ごとに実行する Ajax 関数を使用できます。

ユーザーがブラウザーを閉じて Ajax 呼び出しが実行されなくなると、セッションはタイムアウトになり、0/null に設定されます。そのため、サイトに再度アクセスすると、セッションは 0 になり、リダイレクトしたり、ユーザーに対して必要なことを実行したりできます。

    setInterval(function(){
      $.ajax({
        url: '/',
        success: function(){
          //do stuff with data
            //Like send a POST/GET that 
            //if isset sets the session 1 again
        }
      });
    }, 20000);
于 2012-10-11T10:43:39.460 に答える