最新閲覧日:

フレームで2つに分割されたページ(frameset.htm)があるとします。
そのうち、一つのフレーム(menu.htm,name=MENU)はメニューとして常に表示されています。
もう一つのフレーム(name=MAIN)にはその時々でいろんなページが表示されます。

仮に、例えば60秒おきとかで、MAINにその瞬間に表示されているページを、
frameset.htmもmenu.htmもリロードせずに、
自動的にリロードさせることは出来ますか?
MAINに表示させるページは閲覧者により手動でも変えられるようになっているため、リロードの瞬間にどのページが表示されているかは不定です。

なお、MAINに表示させるページ内に、Java ScriptやMETAタグは追加できない条件です。

A 回答 (4件)

すみません、前回BODYのonLoadで、とか書いてしまいましたが、フレームの方に全て書かなければならないので、FRAMESETのonLoadでした。


自分のところで動作確認済みのソースを下記に挙げますので、参考にしてみて下さい。

<HTML>
<HEAD>
<SCRIPT language="JavaScript"><!--
function reload_frame()
{
  frames["MAIN"].location.reload();
  setTimeout("reload_frame()", 500);
}
//--></SCRIPT>
</HEAD>
<FRAMESET ROWS="64,*" onLoad="reload_frame()">
 <FRAME SRC="menu.html" NAME="MENU">
 <FRAME SRC="main1.html" NAME="MAIN">
</FRAMESET>
</HTML>

※ブラウザ上での見易さを考慮して、全角スペースを使用しています。
    • good
    • 0
この回答へのお礼

お答えありがとうございました。
こちらでも試してみたところ、特定の条件(*1)のもと、動作することが確認できました。

*1:このJavaScriptを実行するHTML文書と、reloadの対象となるHTML文書が、ともに同じサーバー上またはともにローカルにある時に限るようです。それ以外ではエラーになります。前回、上手く動作していなかったのはこのせいだったようです。

セキュリティ上の制限でこのようになっているのでしょうか?
私は、複数のサーバーにサイトを持っているので、この制限がないほうが良いのですが、おそらく無理ですよね?

また、同じサーバーという判断がURLのどの部分で判断されているのか、が不明です。サーバー名のみで判断しているのか、パスの部分も含んでいるのですのかね?

もし上記の疑問に回答をお持ちでしたら、再度回答いただければ幸いです。

お礼日時:2001/10/03 21:06

Java ScriptやMETAタグを使わずにリロードさせるのは、私もわかりません。


ブラウザのリロードは、クライアント側の作業だと思うので、CGIなどのサーバー側のプログラムではできないと思います。

ちなみに、なぜJava ScriptやMETAタグが使えないのでしょう。
    • good
    • 0

frameset.htmは書き換えOKですか?


だとすれば、frameset.htmに下記のJavaScript関数を加え、何らかのタイミングで呼び出せば目的の動作を行えます。
<SCRIPT language="JavaScript"><!--
function reload_frame()
{
  frames["MAIN"].location.reload();
  setTimeout("reload_frame()", 60000):
}
//--></SCRIPT>

関数内の1行目が、フレームMAINのリロードを行います。
2行目で、この関数を60秒後に再実行するようにセットしています。
(setTimeoutの2番目の引数には、再実行までの時間をミリ秒単位で指定します。)

また、この関数は初め外部から実行しなければならないため、BODYのonLoad辺りから呼び出すようにしておくとよいでしょう。
<BODY onLoad="reload_frame()">

この回答への補足

教えていただいたのを参考にやってみていますが、未だ、上手く行っていません。全くリロードされません。onLoadは実行されているのは確かめたのですが。

補足日時:2001/09/23 15:36
    • good
    • 0

 フリーCGIプログラムのチャットで、2分割フレームになっているのを見たことがあります。


 上のフレームで発言を記入するのですが、何もしなくとも下のフレーム(ログが表示されている)は指定した秒間が過ぎると自動リロードされました。
 自動リロードという点から考えて、チャットプログラムを御参考にされてはいかがでしょうか。
 Perl言語についてあまり詳しくないのでどこまでできるのかわかりませんが、応用で可能になるのではないかと思えたので、ご参考になればと思い書きました。
 ただ、[MAINに表示させるページ内に、Java ScriptやMETAタグは追加できない条件]に合うかどうかもわたしには技量がなくて判断できませんが、、

この回答への補足

お答えいただきましたが、よくあるチャットスクリプトの自動リロードは、METAタグを利用しているだけなので、今回使えないのです。

補足日時:2001/09/22 16:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ