2011-06-07 24 views
1

私は、Facebookのアプリとしてマルチプレイヤーのチェスゲームに取り組んでいます。 1人のプレーヤーがブラウザを閉じてゲームを終了すると、他のプレイヤーは通知を受けるべきです。したがって、1人のプレーヤーがBrwoserを閉じると、プレーヤーのリンクを解除するためにリンク解除関数を呼び出す必要があります。これは、onunload外のfacebookでうまく動作します。 問題は、Facebookのアプリがiframeに読み込まれ、onunloadイベントがそこで動作しないということです。iframeからonunload関数を呼び出す

だから私は、ユーザーがブラウザを閉じるときにiframe内の関数を呼び出す方法が必要です。

答えて

1

これはおそらくあなたが探している答えではありませんが、unloadの「ログオフ」は決して確実に機能しません。極端な例として、ブラウザーがクラッシュしたり、Windowsタスクマネージャーを使用して殺されたりした場合を考えてみましょう。したがって、ユーザーが残っているかどうかを検出するための追加のメカニズムを実装することをお勧めします。通常、これはサーバーに定期的に要求を送信することによって行われます。このリクエストがかなりの時間(遅い接続やその他の異常が原因ではないことを意味する)受け取られない場合、ユーザーのリンクを解除します。

つまり、Firefox 4とMSIE 8をテストして、タブまたはブラウザが閉じていると、フレームにunloadイベントが正しく発生していると言いました。 Chrome 12はこれを実行しません。これはおそらく、あなたがテストしているブラウザでしょう。私はそれをChromeのバグと見なします。

+0

あなたの答えをありがとう。ユーザーにリクエストを送信する方法を見つけようとします。 – Akkumulator

関連する問題