HTMLのフレーム構造についてちょっと研究しています。

(フレーム構造のサイトをこれから作りたい、というわけではないです)。

「フレームの内部に読み込まれるべきページが単独でリクエストされた場合は、
強制的に親フレームを読み込ませる」

上記動作は、下記のようなJavaScriptで実現できるということが分かりました。

<body onLoad=”if (parent.frames.length==0) top.location=’http://www.******.com/index.html’;”>

ただ、このスクリプトだと強制的にトップページ(index.html)に飛ばされることになりますよね。


そこで質問なのですが、次のような動作は何らかの手段で実現可能でしょうか?

「フレーム内部に読み込まれるべきページが単独でリクエストされた場合は、
強制的に親フレームを読み込ませた上で、フレーム内にリクエストされた
ページを表示する」


”技術的に不可能”というご指摘もOKですが、ポイントはお一人目のみとさせて下さいm(_ _)m

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/04/03 00:45:26
  • 終了:--

回答(3件)

id:ke_ishi No.1

ke_ishi回答回数269ベストアンサー獲得回数02005/04/03 01:38:15

ポイント25pt

http://homepage2.nifty.com/BASH/WWW/JavaScript/qs.html

JavaScript集(QueryStringの受け渡し) -Bash Homepage-

top.locationに、getでパラメータをふかしてはどうでしょうか。

index.htmlがフレーム、フレーム内ページが001.htmlだとしたら、top.location=’http://www.******.com/index.html?page=001’とかで飛ばします。

index.htmlでのgetパラメータの受け取り方は参考URLを見てください。

id:rionissleeping

ご回答ありがとうございます。

へぇ、通常のHTMLドキュメントにもパラメーターが渡せるんですね!

大変勉強になりました!

2005/04/03 01:51:13
id:inokuni No.2

いのくに回答回数1343ベストアンサー獲得回数212005/04/03 01:47:29

ポイント10pt

http://www.tohoho-web.com/html/frameset.htm

<frameset> - フレームセット

技術的には不可能ではありません。


たとえば、親フレームを予想される子ページ分だけ用意すれば意図する機能ができます。


子ページを

sub1.html

sub2.html

sub3.html


親フレームを

oya1.html

oya2.html

oya3.html


とすれば、


sub1.html には <body onLoad=”if (parent.frames.length==0) top.location=’http://www.******.com/oya1.html’;”>

sub2.html には <body onLoad=”if (parent.frames.length==0) top.location=’http://www.******.com/oya2.html’;”>

sub3.html には <body onLoad=”if (parent.frames.length==0) top.location=’http://www.******.com/oya3.html’;”>


としておいて、


oya1.html には

<frameset rows=”10%,*”>

<frame src=”menu.html” name=”menu”>

<frame src=”sub1.html” name=”sub”>

</frameset>


oya2.html には

<frameset rows=”10%,*”>

<frame src=”menu.html” name=”menu”>

<frame src=”sub2.html” name=”sub”>

</frameset>


oya3.html には

<frameset rows=”10%,*”>

<frame src=”menu.html” name=”menu”>

<frame src=”sub3.html” name=”sub”>

</frameset>


というようにすれば、意図する機能が一応できあがります。

id:rionissleeping

ご回答ありがとうございます。

質問の仕方が悪かったようですみません、親フレームは一つ(トップページ)という前提で考えています。

2005/04/03 01:52:19
id:upride No.3

upride回答回数220ベストアンサー獲得回数12005/04/03 13:53:19

ポイント25pt

location.searchでクエリ文字列取得できます(?page=001.htmlとか)

その値を元に遷移先を決定して(?page=とか余計なものを取る)

frameタグのsrcにセットすれば宜しいと思います

id:rionissleeping

ご回答ありがとうございます。

1.サブページからパラメータとして現在URLを送信

2.フレームページでパラメータを受信してURL取得

…まではできました。

が、受信したURLをはめ込んでframeを定義するところが上手くいきません。

-------------------------

<frameset cols=”200,*”>

 <frame name=”left” src=”menu.html”>

 <script language=”JavaScript”>

  <!--

   for (i in arr) {       //arrがパラメータ名/値を入れた配列

    document.write(”<frame name=left src=” + arr[i][1] + ”>”);

   }

  // -->

 </script>

</frameset>

-------------------------

JavaScriptって、<head>か<body>タグの中にしか書けないのでしたっけ…?

すみません、自己解決しました!

ありがとうございました。

2005/04/03 20:37:57

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません