- 締切済み
フレームについて
HPを2つのフレームを使って作成したのですが、 1つはメニューの左フレームで、もうひとつはそれを表示する右フレームです。 <FRAMESET COLS="1*,4*"> <FRAME SRC="left.html" NAME="left"> <FRAME SRC="right.html" NAME="raight"> </FRAMESET> 例えば、メニューの左フレームの中から日記という項目をクリックすると、 右フレームに日記の内容が表示するようになっております。 そこで、右フレームに日記が表示されているときに更新をすると、 右フレームがトップに戻ってしまいます。 全部そうなってしまいます。 更新をしても、その時表示していたものを、 表示させておくにはどうすればいいのでしょうか? 宜しくお願いします。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- k_shin
- ベストアンサー率0% (0/0)
まずはじめに回答ではないことをお詫びいたします。 投稿者の方と同じ質問をしようとし、過去ログを検索 したら最も近いものが見つかった為便乗させて頂きました。 私なりに調べた結果は ・ANo.#3ではできなかった ・ANo.#4のURLは私の希望する挙動をしている ・JavaScriptでボタンを作ってやると成功する というところまではわかりました。 JavaScriptでボタンを使えば最も手軽に解決できることは わかっているのですが、 私自身、様々なHPで更新ボタンがあってもブラウザの更新ボタン(というかF5) をよく使うので閲覧者の視点からみたらブラウザの更新ボタン を使いたいのでJavaScript以外の方法を探しております。 以下環境 IE6.0 SP1 win2000 SP3 フレーム制御ページのソース <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> <TITLE>てすと</TITLE> </HEAD> <FRAMESET COLS="125,*"> <FRAME SRC="menu_frame.htm" NAME="menue_frame" FRAMEBORDER="1" TARGET="main" SCROLLING="auto" NORESIZE> <FRAME SRC="main.htm" NAME="main" FRAMEBORDER="1" SCROLLING="auto" NORESIZE> <NOFRAMES> <META HTTP-EQUIV="refresh" CONTENT="10;indexl.html"> sorry this web page use frame </NOFRAMES> </FRAMESET> </HTML> (METAタグはANo.#3を参考に書いてみました。 ちなみにMETA記述はあってもなくても希望の挙動は 得られませんでした。)
- none123
- ベストアンサー率30% (49/162)
回りくどい方法ですが、 左フレームにある「日記」をクリックした時、 ターゲットを親ウインドウにし、 日記専用のフレームを読み込んではいかがでしょうか。 通常使っているフレームセットの複製をつくり、 <FRAMESET COLS="1*,4*"> <FRAME SRC="left.html" NAME="left"> <FRAME SRC="日記.html" NAME="raight"> </FRAMESET> という感じで読み込みます。 この場合、コンテンツの量だけ、フレームセットも作らなくては ならなくなり、またリンクページを読み込むたび、 左フレームも読み込みなおしますが、 リロードをしたときに期待した結果は得られると思います。
- snowdust
- ベストアンサー率66% (4/6)
思っておられるとおりかどうかはワカリマセンが、 ブラウザの更新でリロードされると、右フレームがトップに戻る、 ということですよね? 加えて、右フレームに表示されているものは、日記とは限らないわけですよね? その右フレームで表示されている、何かのコンテンツのページを開いている状態で、 リロードをしても右の状態が保たれたまま・・・と言うことですよね? これは、フレームをセットしているHTMLファイル自体を読み込むので、 フレームをセットしているHTMLファイルに書いてあるページが表示されるのは当然のとです。 ブラウザのリロードは、「戻る」や「次へ」と違って、 前のページの情報をもっていないので、仕方のないことだと思います。 ブラウザのリロードしても、ページの状態が変わらないのであれば、 ブラウザにリロードボタンがある意味がないと思うのですが。。。 なぜ、その時に表示させていたものを表示したままにしたいのでしょうか? 目的によっては方法があるかもしれません。
お礼
まったくその通りです。 >なぜ、その時に表示させていたものを表示したままにしたいのでしょうか? 深い理由はありません。 でもたまに、違う人のフレームを使ったHPを見ていて、 更新をするとその時表示されてたものが、そのまま更新されて表示されます。 いくら自分のページでやってもそうならなかったので、 気になったというのもありますし、自分のHPもそうしたいと思いました。
- novaakira
- ベストアンサー率36% (60/164)
すみません。また novaakira です。 ん~、たしかに僕も自分のHPをフレームにして 更新をするとトップに戻ってしまいますね。 なぜそうなるかは..... 過去の質問の回答をみるとわかります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=67922 どーやらちょっと無理だそうです。でもなんでできるところと できないところがあるのかはしりません。 ほかに知りたいのならここのページの質問検索にフレームと 打ち込んでみてください。 NORESIZEってのはただフレームの幅を固定するためだけ だそうです。 実は、 ~kyudo/***** のやつは僕が作成したやつなんです。 あのHPもほとんど。 あそこでできたからほかでもできるのかなって思っていました。 助けにならずすみませんでした。
お礼
なぜ、この前のページ >http://kyudo.taiiku.tsukuba.ac.jp/club/ >http://www.tuat.ac.jp/~kyudo/yotei/yotei.htm で出来て、私のページではできないんですかね?
- novaakira
- ベストアンサー率36% (60/164)
こんにちわ。またnovaakiraです。 ちょっとみてもらいたんですけど、 http://kyudo.taiiku.tsukuba.ac.jp/club/ http://www.tuat.ac.jp/~kyudo/yotei/yotei.htm へいってみて、もらいたいのですが、 これらのページへいって、別のページを開いて、 更新をしたらどうなるか教えてください。
お礼
>http://kyudo.taiiku.tsukuba.ac.jp/club/ >http://www.tuat.ac.jp/~kyudo/yotei/yotei.htm 両方試してみました。 このページでは、ちゃんとその時フレームに表示されていたものが、 更新ボタンを押しても表示されました。
- novaakira
- ベストアンサー率36% (60/164)
こんなのはどうでしょう? <FRAMESET COLS="1*,4*"> <FRAME SRC="left.html" NAME="left" NORESIZE> <FRAME SRC="right.html" NAME="right" NORESIZE> <NOFRAME> <META HTTP-EQUIV="refresh" CONTENT="10;right.html"> このページはフレームを使用しています。<BR> 10秒後に目次ページへジャンプします。 </NOFRAME> </FRAMESET> なんて感じにしてみては? 一応フレーム未対応の人のためにもページが見れるように しておきました。 これでできなければすみません。
お礼
試してみたのですが、ちょっとうまくいかなかったです。
- meke2
- ベストアンサー率41% (16/39)
こんばんわ~ ちょこっとアドバイスです。 フレームを使ってページを構成するとアドレス(URL)は フレームを読み込むHTMLファイルに固定されちゃいますよね。。。 なので更新ボタンを押すと、もう一度フレームで指定したページを読み込み 直してします。 と言うことで、もし質問のようにしたいのならページ内に 更新ボタン(っぽいもの:開いているページへのリンク)などを作るか inoue64さんが言ってるようにJavaScriptと、Cookieを 使うかになるようですね。。。
お礼
やはり、JavaScriptと、Cookieですか。 よく分からないので、駄目でした。
- inoue64
- ベストアンサー率29% (334/1115)
JavaScriptと、Cookieを使えばできるかもしれません。
お礼
そうなのですか。 ちょっと調べてみたのですが、よく分かりません。 できればサンプルをのっけて欲しいのですが。
お礼
うーん、確かにそうすると期待した結果にはつながると思いますが、 やはりこのような方法しかないのでしょうか? もうちょっとシンプルなものでは無理なのでしょうか?