• 締切済み

子フレームの自動リロードは可能でしょうか?

フレームで2つに分割されたページ(frameset.htm)があるとします。 そのうち、一つのフレーム(menu.htm,name=MENU)はメニューとして常に表示されています。 もう一つのフレーム(name=MAIN)にはその時々でいろんなページが表示されます。 仮に、例えば60秒おきとかで、MAINにその瞬間に表示されているページを、 frameset.htmもmenu.htmもリロードせずに、 自動的にリロードさせることは出来ますか? MAINに表示させるページは閲覧者により手動でも変えられるようになっているため、リロードの瞬間にどのページが表示されているかは不定です。 なお、MAINに表示させるページ内に、Java ScriptやMETAタグは追加できない条件です。

みんなの回答

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.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> ※ブラウザ上での見易さを考慮して、全角スペースを使用しています。

kazu-kun
質問者

お礼

お答えありがとうございました。 こちらでも試してみたところ、特定の条件(*1)のもと、動作することが確認できました。 *1:このJavaScriptを実行するHTML文書と、reloadの対象となるHTML文書が、ともに同じサーバー上またはともにローカルにある時に限るようです。それ以外ではエラーになります。前回、上手く動作していなかったのはこのせいだったようです。 セキュリティ上の制限でこのようになっているのでしょうか? 私は、複数のサーバーにサイトを持っているので、この制限がないほうが良いのですが、おそらく無理ですよね? また、同じサーバーという判断がURLのどの部分で判断されているのか、が不明です。サーバー名のみで判断しているのか、パスの部分も含んでいるのですのかね? もし上記の疑問に回答をお持ちでしたら、再度回答いただければ幸いです。

  • lucky111
  • ベストアンサー率30% (75/244)
回答No.3

Java ScriptやMETAタグを使わずにリロードさせるのは、私もわかりません。 ブラウザのリロードは、クライアント側の作業だと思うので、CGIなどのサーバー側のプログラムではできないと思います。 ちなみに、なぜJava ScriptやMETAタグが使えないのでしょう。

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

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()">

kazu-kun
質問者

補足

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

noname#1438
noname#1438
回答No.1

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

kazu-kun
質問者

補足

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

関連するQ&A

  • HPのフレーム

    境界線の色を変えて、細くしたいのですが、 色は変えられたのですが、細くすることができません。 今フレームを呼び出す?ために 『<FRAMESET rows="100,*"> <FRAME src="frame-ue.htm" name="ue">        <FRAMESET cols="100,*"> <FRAME src="frame-hidari.htm" name="hidari"> <FRAME src="frame-main.htm" name="main"> </FRAMESET> <NOFRAMES> <BODY> <P>このページを表示するには、フレームをサポートしているブラウザが必要です。</P>』 としていて、色を変えるのに、 『<FRAMESET rows="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-ue.htm" NAME="ue"> <FRAMESET COLS="15%,85%" BORDERCOLOR="RED"> <FRAME SRC="frame-hidari.htm" NAME="hidari"> <FRAME SRC="frame-main.htm" NAME="main">』 こうしています。 どうすれば細くできますか? もう1つこうゆうタグを使えばいいのでしょうか? わかる方、よろしえれば教えてください。

  • フレームのことで

    今、作っているサイトでは縦2分割のフレームを利用しているんですが ちょっと困っています。 それは、左側の小さい方のフレームにサイトの主なメニュー(リンク)を 置いているんですが、そのリンク先が大きいほうのフレームに 表示させたいのですが、小さいフレームにリンク先が出てきてしまいます。 小さいフレームにある方のリンク先を大きいフレームの方に 表示させるにはどうしたらいいですか? ちなみに、フレームは以下のタグを使っています。 どんなタグをどこに書き足したらいいのか、教えてください。 <FRAMESET COLS="25%,75%"> <FRAME SRC="menu.html" NAME="main.html"> <FRAME SRC="main.html" NAME="main.html"> </FRAMESET>

  • フレームのターゲット指定について

    フレームを使ったHPを製作しているんですが フレームのターゲット指定がなぜかうまくいきません。2分割したフレームなんですけどもフレームタグは <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>タイトル</title> </head> <frameset cols="100,*" framespacing="0" frameborder="NO" border="0"> <frame src="t_menu.htm" name="menu" scrolling="NO" noresize id="menu"> <frame src="t_main.htm" name="main" id="main"> </frameset> <noframes> <body> <P> このページをご覧いただくにはフレーム対応のブラウザが必要です。 </p> </body> </noframes> <script language="JavaScript"> <!-- window.open = SymRealWinOpen; //--> </script> </html> です。 t_menu.htmで指定したページを全てt_main.htm開きたいと思い、<a href="about.htm" target="main">を入れてもなぜか新しい窓が開いてしまいます。<a href="about.htm" target="menu">とやるとちゃんとmenuのところで開くようになります。何度やってもmainのほうに開いてくれません。何がいけないのでしょうか? 製作環境はDreamweaver MX2004、IE6.0です。 宜しくお願いします。

  • フレームページが崩れる。。。

    フレームページを使っているのですが、見る人によってはページの一部が切れて 見えない部分もあるらしいです。ブラウザの大きさを変えてもレイアウトだけは 崩さない為には、どこにどんなタグが必要なんですか? 現在のフレームの親ページのソースです。 <FRAMESET rows="30%,70%" frameborder="NO" border="0"> <FRAME src="ue.html" scrolling="NO" noresize> <FRAMESET cols="20%,80%" frameborder="NO" border="0"> <FRAME src="side.html" scrolling="NO" name="menu" noresize> <FRAME src="main.html" name="main" noresize> </FRAMESET> <NOFRAMES>

    • ベストアンサー
    • HTML
  • リファラーを変えずに自動的にリロードする方法はないでしょうか?

    リファラーを変えずに自動的にリロードする方法はないでしょうか? サイトトップのリンクから遷移した先のレンタルBBSを30秒おきにリロードしてチェックしたいのですが、フレームを使って <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <META HTTP-EQUIV="Refresh" CONTENT="30"><TITLE>リロード</TITLE> </head> <body><FRAMESET COLS="0,*" TITLE="リロード"> <FRAME SRC="http://okwave.jp/" NAME="Dummy" SCROLLING="auto" FRAMEBORDER="0" NORESIZE TITLE="ダミー"> <FRAME SRC="http://okwave.jp/" NAME="Main" SCROLLING="auto" FRAMEBORDER="0" TITLE="内容"> <BODY> といったやり方をした場合、トップページからどこか別ページに遷移した状態でページがリロードされると、表示されているページは元のトップに戻ってしまいます。 それならフレームセットをトップページからの指定にせずに最初からBBSのURLを入れて <FRAME SRC="http://okwave.jp/" NAME="Dummy" SCROLLING="auto" FRAMEBORDER="0" NORESIZE TITLE="ダミー"> <FRAME SRC="http://*********.jp/BBS.php" NAME="Main" SCROLLING="auto" FRAMEBORDER="0" TITLE="内容"> としておけばいいとお思いかもしれませんが、このBBSはリファラーを検出しているので、このような方法では「トップページからアクセスしていないから表示不能」ということになってしまうのです。 このため、一旦トップページからBBSに入った状態でBBSのフレームだけ定期的にリロードさせたいのですが、そういったJavascriptでもどこかで公開されていないでしょうか? ちなみに、私はJavascriptは簡単な文字数制限や文字種制限や、チェックボックスがチェックされたらテキストボックスを有効にするくらいしか自力で書くことが出来ず、他には既存のスクリプトを拾ってきて例えばonClickやonFofusなどで作動させるくらいのことしか出来ないので、自分でスクリプトを組むためのアドバイスを頂いても殆ど理解できません。 「このサイトにあるこのスクリプトのこの部分を書き換えれば出来る」程度のご回答を頂くことは出来ないでしょうか? どうかよろしくお願い致します。

  • フレームページでの自動ジャンプ

    フレームページでA.htmlとB.htmlがあるんですが 自動的に他ページへ飛ばすタグ <META HTTP-EQUIV="refresh" CONTENT="3;URL=http://..."> がありますよね? 自動的へ飛ばすのをフレーム内B.htmlが切り替わるっていう風には できないでしょうか? ---現在--- <html> <head> <title>フレーム</title> <META HTTP-EQUIV="refresh" CONTENT="10;URL=http://..."> </head> <frameset rows="20%,*" frameborder="no"> <Frame name="A" src="A.html"> <Frame name="B" src="B.html"> </frameset> </html> ------ こうなってるんですができませんか? よろしくお願いします。

  • FC2HPでフレーム作成

    トップページのフレームは表示されるのですが、リンク先のフレームが表示されません。 トップページからGalleryに飛ばしたいのですが、左のページ(gallerymenu.htm)と右のページ(gallerymain.htm)を個別に見ると表示されるのですが、フレームページ(gallerytop.htm)は何も表示されません。 フレームページのソースです。 <html> <head> <title>Gallery</title> </head> <body> <p><frameset cols="150,*"> <frame name="hidari" src="gallerymenu.htm"></frame> <frame name="migi" src="gallerymain.htm"></frame></frameset></p> <p>&nbsp;</p> </body> </html> メモ帳でhtmファイルを作ってアップロードするといい、と見かけたのでやってみたのですが変わらずフレームページにメニュー・メインは表示されません。 何かタグが間違っているのでしょうか? ホームページの仕様が変わってしまったので使いにくいです。 よろしくお願いします。

  • フレームひとつだけ、リロードできない?

    main,menu.detail(.html)の3つのフレームに分割したホームページでmenu画面から選択してdetail画面に表示するようにしていますが、更新して転送し確認するためリロードするとdetail画面がトップ画面に切り替わってしまいます。現在表示されているdetail画面のままリロードできないでしょうか?

  • フレームすくローリング有り/無し

    こんにちわ だいぶ前に登録してから、久しぶりに 質問させて頂きます。  フレームページの作成をしております。  右がメインで、左がメニューの一般的なものですが、  左のメニューフレームについて、、、 縦幅はスクロール有り 横幅はスクロール無しにし、幅を固定したいのですが HTMLタグ辞典や調べて探しきれませんでした。 既に同じ質問が出ていたら申し訳ありません、 何卒宜しくお願い致します。  現在 indexのタグは以下のとおりです。 --------------- <frameset rows="*" cols="150,*" frameborder="NO" border="0" framespacing="0"> <frame src="left_frame.htm" name="leftFrame" scrolling="auto" noresize>  ↑↑↑↑↑↑↑↑ auto にすると、横も縦も  スクロール出てしまいます;_; <frameset rows="82,*" cols="*" framespacing="0" frameborder="NO" border="0" Marginwidth="5"> <frame src="frame_above.htm" name="topFrame" scrolling="NO" noresize> <frame src="main.htm" name="mainFrame"> </frameset> </frameset> <noframes><body> ---------------

  • フレームの境界線

    ホームページでフレームのページを作りました。 フレームの境界線を消したくて、 <frameset cols="150,*" frameborder=0> <frame src="menu1.html" name="menu"> <frame src="top.html" name="main"> </frameset> としても、背景が紫(#CC99FF)なので 白い境目が出来てしまいます。 宜しければ、境目を見えなくする方法を教えて下さい。

    • ベストアンサー
    • HTML

専門家に質問してみよう