1

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

そのため、ユーザーがブラウザーを閉じているときに iframe 内で関数を呼び出す方法が必要です。

4

1 に答える 1

1

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

とは言っても、Firefox 4 と MSIE 8 をテストunloadしたところ、タブまたはブラウザーが閉じられている場合、どちらもフレームでイベントを正しく発生させました。Chrome 12 はそれを行いません。それはおそらくあなたがテストしているブラウザです。Chromeのバグだと思います。

于 2011-06-08T10:08:45.760 に答える