- ベストアンサー
フレーム1から、フレーム2を自動更新させたい
他のカテゴリーに書き込みをしたのですが、回答が得られなかったのでこちらへ質問させて頂きます。 ただいま、チャットルームを製作しております。 このチャットは発言と、発言のログの2個のフレームで構成されております。(以下発言フレームとログフレーム) 質問は発言フレームからログフレームを自動的に更新させることは出来ますか? 私が使用しているサーバーでは、頻繁に発言ログがNOT FOUNDになってしますので、発言フレームから定期的に更新させたいと思います。(相手の設定に合わせてリロード秒数等を自動で合わせたりはしません。単純に自動更新出来ればOKです。) JavaScriptで発言フレーム内に、 setTimeout("location.href='チャットのアドレス'" treget=ログフレーム,6000); といった感じに試してみたのですが、上手く行きませんでした。 何卒アドバイスをお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一応、下記のようにすれば動くと思いますが・・・ 頻繁に not found になる理由が解決できなければ状況の改悪になるかもしれません。 サーバへの付加を増やすことで、同じサーバ内の別のユーザに迷惑をかけるとか、その為にチャットの使用禁止やあなたのアカウントの剥奪などの処置がとられるかも知れません。 また、setTimeoutの6000(=6秒)は実際に設定する値ではないですよね?CGIチャットで6秒更新だとしたらかなり無茶です。元のスクリプトで6秒更新だとしたらそれがnot foundになる原因かも。 <script type="text/javascript"> <!-- function log_reload() { parent.frames[1].location.href = 'ログフレームのURL'; setTimeout(log_reload,60000); } //--> </script> <body onload="setTimeout(log_reload,60000);"> なお、チャットのスクリプトによっては、単純に下フレームのURLを入れるだけでは機能しないかもしれません。
その他の回答 (2)
No.1 の者です。 すみません。簡単な方法がありますので、先ほどの回答はなかったことにしてください。 発言のログの方に、(<head>~</head> 間) <meta http-equiv="Refresh" content="10"> と記述すれば、自動で再読込するようになります。 この場合、10秒ごとに再読込します。
補足
ご回答ありがとうございます。 説明が足りず申し訳ありませんでした。 「発言のログ」のが更新される度に、しばしばNOT FOUND(別のページに移動)になってしまい、 「発言ログ」の方にある「<meta http-equiv="Refresh"~」の記述が無効になってしまいます。 その為「発言フレーム内のJavaScript」からも、更新出来れば多少は改善出来ると考え質問させて頂きました。 以下がフレームの名前です。 発言は「form」 ログは「log」
ログフレームには何という名前をつけていますか? (フレーム定義ファイルの <frame name=""> の箇所に指定してある名前を教えてください。)
お礼
ありがとうございます。無事に出来ました。 チャットはyychatという物を、サーバーにアップロードして、パーミッション等を設定しただけで、ほぼデフォルトのままです。 特に処理系統は弄っておりません。 また、最近作ったばかりで、多くの人が利用する訳でもありませんし、時間帯も関係なく頻繁にnot foundになってしまいます。 また、他のCGIプログラムでも試してはみましたが、同じ結果でした。 6000は普段は「6000*100」にして10分として、使っています。 こちらに投稿する時に紛らわしいと思い消してしまいました。