• ベストアンサー

フレーム1から、フレーム2を自動更新させたい

他のカテゴリーに書き込みをしたのですが、回答が得られなかったのでこちらへ質問させて頂きます。 ただいま、チャットルームを製作しております。 このチャットは発言と、発言のログの2個のフレームで構成されております。(以下発言フレームとログフレーム) 質問は発言フレームからログフレームを自動的に更新させることは出来ますか? 私が使用しているサーバーでは、頻繁に発言ログがNOT FOUNDになってしますので、発言フレームから定期的に更新させたいと思います。(相手の設定に合わせてリロード秒数等を自動で合わせたりはしません。単純に自動更新出来ればOKです。) JavaScriptで発言フレーム内に、 setTimeout("location.href='チャットのアドレス'" treget=ログフレーム,6000); といった感じに試してみたのですが、上手く行きませんでした。 何卒アドバイスをお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.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を入れるだけでは機能しないかもしれません。

sora_naegino
質問者

お礼

ありがとうございます。無事に出来ました。 チャットはyychatという物を、サーバーにアップロードして、パーミッション等を設定しただけで、ほぼデフォルトのままです。 特に処理系統は弄っておりません。 また、最近作ったばかりで、多くの人が利用する訳でもありませんし、時間帯も関係なく頻繁にnot foundになってしまいます。 また、他のCGIプログラムでも試してはみましたが、同じ結果でした。 6000は普段は「6000*100」にして10分として、使っています。 こちらに投稿する時に紛らわしいと思い消してしまいました。

その他の回答 (2)

noname#83116
noname#83116
回答No.2

No.1 の者です。 すみません。簡単な方法がありますので、先ほどの回答はなかったことにしてください。 発言のログの方に、(<head>~</head> 間) <meta http-equiv="Refresh" content="10"> と記述すれば、自動で再読込するようになります。 この場合、10秒ごとに再読込します。

sora_naegino
質問者

補足

ご回答ありがとうございます。 説明が足りず申し訳ありませんでした。 「発言のログ」のが更新される度に、しばしばNOT FOUND(別のページに移動)になってしまい、 「発言ログ」の方にある「<meta http-equiv="Refresh"~」の記述が無効になってしまいます。 その為「発言フレーム内のJavaScript」からも、更新出来れば多少は改善出来ると考え質問させて頂きました。 以下がフレームの名前です。 発言は「form」 ログは「log」

noname#83116
noname#83116
回答No.1

ログフレームには何という名前をつけていますか? (フレーム定義ファイルの <frame name=""> の箇所に指定してある名前を教えてください。)

関連するQ&A

  • フレームのチャット

    すみません、どなたかお答えいただければ嬉しいです。 チャットを作っているのですが、発言/リロードを押すと下のフレームもリロードさせたいのですが どのようにすればうまく動作しますか? 上はtopFramem下はmainFrameです。 <script type="text/javascript"> <!-- function reload(){ parent.mainFrame.location.href='logpage.php'; } --> </script> <input name="Submit" type="submit" id="Submit" value="発言/更新" onclick="reload()" /> PHPで、 if($_POST['Submit'] == "発言/更新"){ 書き込み処理 } このように記述しています。 テキスト欄に入力して発言をすると、ファイルにログが書き込まれフレームは更新されず、 空白の状態でボタンを押すと更新されます。 発言したうえで更新したいのですが、どのようにすれば良いのでしょうか?

  • TempleMonkey 自動更新

    自動更新 TempleMonkeyにてそのまま使える記述でお願いします。 (function myloop(i) { setTimeout(function() { myfunc(); if (--i) myloop(i); },150000) })(1); function myfunc() { window.location.reload(true);} var myp = document.createElement("p"); myp.textContent = "Last update: " + (new Date()).toString(); $("#top").append(myp); この記述で指定のページを秒数指定で自動更新をしているのですが、そのページを操作中の場合はリロードをしなくする方法、もしくは秒数をリセットする記述をお願いします。 TempleMonkeyにてそのまま使える記述をお願いします。 #ユーザースクリプト #Javascript #Greasemonkeyスクリプト

  • Javascriptで自動更新

    あるページを10秒に一度、自動で更新させたいのですがなにかよい方法はありませんか? このサイトで見かけたスクリプトを試してみても動作しませんでした;; <script language="JavaScript"> <!-- min=60; setTimeout('reload()', min*1000); function reload() { location.href=location.href; } //--> </script> Javascriptで実現する方法があれば教えてください。

  • チャットの自動更新のプログラミング

    CGI(perl)でチャットを作る際の、自動更新の設定の仕方を教えてください。 具体的には、入力フォームのあるフレームと発言が羅列されるフレームとの2つのフレームからなるチャットでそれぞれ別にCGIファイルがあります。現在は、ページを更新するか自分が発言するかしなければ発言の羅列が更新されません。発言入力フォームのあるフレームを更新させないで、羅列のフレームだけを更新させるプログラムを教えてください。また、それに関してわかりやすいページがあれば教えてください。

  • javascriptで、別のフレームをリロード

    下記のように、<A>タグ内だけでテキストを押すとページがリロードするようにしています。 <a href="javascript:location.reload();">再読み込み</a> フレームを分けた際、 リロードボタンを name="A"フレームに置き、 name="B"フレームを更新させたい場合、 どのように書き直せば良いのでしょうか。 すみません、簡単なことなのかもしれませんが、javascriptが不慣れで、検索してもわからなかったため、ご質問させていただきました。 何卒宜しくお願い致します。

  • 1回だけリロードしたい

    開いたときに1度だけリロードさせたいのですが、たのページを参考に <script language="javascript"> <!-- if ( location.search.indexOf("1") == -1 ) { setTimeout("_reload()",1000); } function _reload() { location.href = location.href + "?1"; } //--> </script> を入れてみたのですが、リロードはされるものの、いわゆるブラウザの「更新」ボタンとは違うらしく、POSTで送られてきたデータを破棄した状態でリロードされるため、データの取得ができず困っています。 データを保持したままのリロード、つまりブラウザの「更新」ボタンのようなリロードを1度だけさせるにはどうしたらよいか教えてください。

  • チャットの自動更新について

    たぶんCGIのチャットルームだと思いますが、 自動更新にチェックを入れているんですが、 数秒たっても自動更新しなくなってしまいました。 更新ボタンを押すと相手は会話しているみたいで、 何列も表示されます。 自分の運営するチャットではなく人のチャットルームですが、 全然違うところで試しても同じような結果でした。 不便なので自動更新できるようにしたいのですが、 なにがおかしいのでしょうか?

    • ベストアンサー
    • CGI
  • Java Script 自動ジャンプ

    Java Scriptで自動ジャンプで別ウインドウに出したいのですができません。 只今下記でやってるんですけど、これだと、親ページまでどっかに飛ぼうとするので、すごく困っています。助けてください。 <SCRIPT LANGUAGE="JavaScript"> <!-- function autoLink(){ location.href=window.open"リンク先"; } setTimeout("autoLink()",3000);// --> </SCRIPT>

  • ブラウザの自動更新について

    iPhoneのブラウザで自動更新したいです。 safari でもopera でもchromeでも構いません。 Auto web reloaderやEasy Auto Refleshなどを試したのですが、デスクトップへ追加をしてもPC版のように秒数設定の画面にいけま せん。 iPhoneでブラウザを3秒ごとに自動更新したい場合はどのようにすればよいでしょうか? iPhone8でver.11.0.2です。 PCではWindowsでchromeを使っておりますため、chromeでできると1番嬉しいです。 不慣れなため情報不足などありましたら、ご指摘いただければ追記いたします。 よろしくお願いいたします。 iPhone/ブラウザ/インターネット/リロード/自動更新/

  • jQuery POST送信後のページ更新

    いつもお世話になっております。 jQuery+PHPにて、POST送信し、 戻り値の条件分岐でページを遷移させたり、 更新させたいと思っています。 ご教授願えないでしょうか。 index.php内 [ソース] $.POST('./search.php', {'code':12345'}, function(data){ if(data['type'] == '1'){ alert('見つかりません') location.href='./index.php'; } else if(data['type'] == '2'){ location.href='./edit.php; }, 'json' ); 見つかりませんのアラートを表示した後、 location.hrefだと、リロードする事なく。 またlocation.reloadにしても同様です。 $.POST外でlocation.reloadを指定すると リロードしてくれるのですが、$,POST送信してくれません。 もし不可能であれば、location.hrefで別のファイルを経由させて実施しようと思っています。 宜しくお願いします。

    • ベストアンサー
    • AJAX