フレームで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と関連する良く見られている質問

QMAINページの読み込み完了まで、SUBページを表示しておくことは可能ですか?

JAVASCRIPTの初心者です。次のような動きをするプログラムがJAVASCRIPTで組めますか? 教えてください。
〈現状〉ページAから、多数の画像を掲載するページBにリンクで飛ばしていますが、ページBのレイアウトが画像読み込み中、崩れ(TASBLEが膨れる)てしまいます。ページA、ページBは別HTMLです。
〈求める動き〉
(1)ページAから多数の画像を掲載するページBにリンクで飛ばす。
(2)ページBの読み込み中、ページBに代わるSUBページを表示する。
(3)ページBの読み込みが完了(レイアウトが安定)し次第、ページBを表示する。

こうした動きが可能なのか、不可能なのかも分かりません。どうぞよろしくお願いします。

Aベストアンサー

そのようなことをやっている例はないと思いますが、できないことはないかも…

(2)でバックグラウンドでキャッシュに画像を読込んでおいて、終わったところで、ページB'(本当の掲載ページ)に移動することで、ある程度までは似たことができるかも…(未確認)
ただし、ユーザーがキャッシュの設定をほとんど0にしていると、再度読込むことになる可能性もあるので、なんとも言えませんが。
画像の読込み状態のチェックに関しては別の質問が参考になるかと。
 http://oshiete1.goo.ne.jp/qa4680625.html

実際は↑のような面倒な方法をとるよりも、レイアウト指定の際に画像のサイズ等を明確にすることで、ブラウザが適宜レイアウトを決められような方法をとるのが、対策としてはよろしいかと思います。

Qフレーム表示のページのリンク先を同ページ内に複数指定したいのですが・・・

お世話になります。

質問の内容なのですが、
ホームページをフレーム表示でA,B,Cと3分割した場合に、
フレームAのリンクの1つをターゲットフレームでフレームBにリンクしたとします。
フレームAからフレームBにリンクしたリンクをクリックした時に、フレームCの表示を違うHTMLに変えることはできないのでしょうか?
わかりずらくてすみません。
要は、フレームAのリンク指定先をフレームBとC
2つにすることは可能なのでしょうか?

またフレームBにリンクしてあるフレームAのリンクをクリックした時に、
フレームCに貼ってある画像のみを変更するようなことはできるのでしょうか?

わかりずらくて申し訳ありませんが、よろしくお願い致します。

Aベストアンサー

ここにあるサンプルで出来ませんか?

http://www.usagi-js.com/sample/jssample6.htm

参考URL:http://www.usagi-js.com/sample/jssample6.htm

Qonmouseover="this.className=をjsファイルにまとめて、指定する場所はid=menu1,2~....かclass=menuで統一したい

<div class="font1 bor1"
onmouseover="this.className=this.className+' bgcol txcol'"
onmouseout="this.className='font1 bor1'">
というものがあったとしてこれを
<div id="menu1・・・2・・・">だけにして
onmouseover=~をjsに略記できるようにしたいのですが
何かいい手はありませんか?

idで指定できる版のほかに
classで指定できる版があるとうれしいです。classだと難しいでしょうか?

また、こちらももしできればでいいのですが、this.classNameを
指定IDのclassName等もできるのでしょうか?

質問に不足があれば答えられる範囲で答えます。よろしくお願いします。

Aベストアンサー

もうひとつ、質問内容を把握できてませんが、
jQueryを使ったサンプルを。中身は
「font1」ってclassを持つ要素のマウスオーバーで
bgcol と txcol の二つのクラスを追加する。
マウスアウトで
bgcol と txcol の二つのクラスを取り除く。
です。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){

$('.font1').hover(function(){
$(this).addClass("bgcol");
$(this).addClass("txcol");
},function(){
$(this).removeClass("bgcol");
$(this).removeClass("txcol");
});

});
</script>

$('.font1') という部分を $('#font1') と書けば id="font1" の要素に対する設定になります。 

jQueryの解説、入手先等は
http://www.openspc2.org/JavaScript/Ajax/jQuery_study/index.html
とか、参考にしてください。

もうひとつ、質問内容を把握できてませんが、
jQueryを使ったサンプルを。中身は
「font1」ってclassを持つ要素のマウスオーバーで
bgcol と txcol の二つのクラスを追加する。
マウスアウトで
bgcol と txcol の二つのクラスを取り除く。
です。

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){

$('.font1').hover(function(){
$(this).addClass("bgcol");
$(this).addClass("txcol");
},function(){
$(this).removeClass("bgcol");...続きを読む

Qフレームではなくページの中央にフレーム?・・・

最先端のサイト(?)に行くと、フレームではなくて、ページの中央に別空間のようにページが表示されているものがあります。その「別空間」だけにスクロールバーもついています。
これってjavascriptで操作しているのですか?
これは、javascriptのいろいろなページでもサンプル見たことがないので質問させていただきます。

(例)
http://www.fujitv.co.jp/jp/warauinu/

Aベストアンサー

こんな感じでどうでしょうか?
個人的には多重フレームで表示が遅くなったり
ウィンドウが小さいと表示されなかったりするので大嫌いです。

<HTML>
<FRAMESET rows="10%,80%,10%" border=0 frameborder=0 framespacing=0>
<FRAME src="" scrolling="no" noresize>
<FRAMESET cols="10%,80%,10%" rows="*" border=0 frameborder=0 framespacing=0>
<FRAME src="" scrolling="no" noresize>
<FRAME src="main.html">
<FRAME src="" scrolling="no" noresize>
</frameset>
<FRAME src="" scrolling="no" noresize>
</frameset>
</HTML>

Qリンク先をフレーム(+フレーム内の1つを別々のページへ)

タイトル通りなんですが、

あらかじめ、frame.htmlという
上と左右に分割されたページ
(上はtop.html、左はleft.html、右はright.html)
があるとします。

で、index.htmlから1~3までのリンク先があり、
そこをクリックすると、frame.htmlの
top.htmlとleft.htmlだけ同じファイルを呼び出し、
right.htmlの部分だけ各1~3のページを
読み出す事はできるのでしょうか?

1~3.html用にそのフレームページを3つ作れば早いのですが
どうにかして、frame.htmlの「right」だけを各リンク先のページに
切り替えるという、1つのファイルで賄いたいと思っております。

宜しくお願い致します。

Aベストアンサー

方法としては、
・index.htmlのリンク1~3のhrefをそれぞれ
 "frame.html?ptn=1"
 "frame.html?ptn=2"
 "frame.html?ptn=3"
 などとしてframe.htmlへどのリンクを踏んだかを渡す

・frame.htmlの先頭でindex.htmlから渡された値(ptn)を取得する
 window.documentあたりで取得できると思います。
 (文字列操作等が必要かもしれない)

・取得した値(ptn)によってframesetのsrcを振り分ける。
 ptn=1だったらright1.html
のような感じで。

といった具合で実現可能かと。


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

人気Q&Aランキング

おすすめ情報