- 締切済み
チャットの退室処理について
ASPでチャットを作っています。 退室ボタンを押したときに退室処理用のaspファイルを呼び出すようにしました。 しかし、多くの利用者の方は、退室の時に×ボタンでチャット窓を閉じたり、 戻る・進むボタンや、お気に入りのリンク等から他のページへ飛んでいくようです。(つまり、退室処理のaspファイルが実行されない場合が多いです) 退室処理のaspファイルには、参加者名を記録するファイルから、退室した参加者名 を取り除く処理をさせています。ですから、このファイルを実行させたいのですが… ブラウザの閉じるボタンを押したときに、特定のファイルを開くようにするには どうしたらよいのでしょうか?(ポップアップ?のさせ方)
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BlueRay
- ベストアンサー率45% (204/453)
BodyタグのOnUnloadを使用してみては如何でしょうか。 以下サンプルです。参考になれば幸いです。 <script language="JavaScript"> <!-- flg = false; function windClose() { if (flg == false) { window.open(location.href, "_blank"); alert("「閉じる」ボタンで閉じて下さい。"); } } //--> </script> <body onunload="windClose();"> <input type="button" value="閉じる" onclick="flg=true;window.close();"> </body>
- the845t
- ベストアンサー率33% (246/743)
ゆいちゃっとを参考にされるのがよいと思うのですが、 名前と時間、ホスト名を取得して書きこむ。 ↓ 同じホストがあった場合は以前のを削除して追加。 他に、 アクセスしなくてなってからある期限を越えた場合、その名前等を削除 といった形だったと思います。 ホスト判断ですので、同じ人が複数のHNで入室することはできませんね。 常にどちらかが消えてしまいますので。 といった形になります。 ですので、自動リロードでは少なくとも、 name,hostをgetで参照できる形で自動リロードする必要があります。
お礼
the845tさん、こんばんは。 ゆいちゃっと参考にいたします。 ありがとうございます。
- the845t
- ベストアンサー率33% (246/743)
ポップアップの場合はJavaScriptの分野かと思うのですが、 (ごめんなさい、aspは分かりません。できるのかもしれません。) それよりも、よくあるチャットのようにsanka.datにアクセスしている人の名前を常に書き込んではいかがですか。 この場合、自動リロードが必須になりますけれど。 この常にアクセスというのを嫌ってやっていないのかもしれませんので、 一つアドバイスとして。 (でも、退室メッセージを表示させているのであれば、 退室の際「退室」というボタンを押すのはマナーだと思うんですけどね。)
お礼
JavaScriptのTipsを使って、自動リロードをさせています。 sanka.datに書き込みを行うとき、古いsanka.datを消去、参加名を上書きモードで 書き込み…という流れで作ったのですが、 Lan上の2台のパソコンでためしたところ、 常に1人の名前しか表示されません。 常に書込むとは、具体的にはどういった流れになるのでしょうか? フローチャートがあると、わかりやすいのですが…
お礼
BlueRayさんこんばんは。 OnUnloadですが、発言ボタンを押したときにも(画面が書き換わるとき)反応して アラートがでてしまいました。 今回のケースでは、無理みたいです。 他のケースに使えるかもしれません。ありがとうございます。