• ベストアンサー
  • 困ってます

多重になるフレームを制御し、表示させたい!?

考えているフレームは、フレーム名f上、f下があります。 この状態で、f上またはf下のハイパーリンクで、詳細表示の為に、f下に更に別のフレームを読み込んでいます。 この時に所定のページをf左、f右に指定して表示したいのです。 しかしf下に表示させるフレームのURLを読み込んでしまうと、f左、f右の指定が、そのURLに書かれているものになってしまいます。 特にf右のURL指定をリンクによって変更したいので、下記のようなJavascriptではうまく表示が出来ませんでした。  parent.f下.location.href=(フレーム下をf左、f右に分けるURL(1))  parent.f右.location.href=(フレーム下の右に表示させたいURL(2)) (これを実行すると、'parent.f右.location.href'はオブジェクトではありません、とのメッセージが出る。  抜けると、(1)のファイル内に書かれてあるURLがそのまま出てしまう。 あらかじめ、最初から3つフレームに分割しておけば良いのかもしれませんが・・・) そもそもこの様な多重となるフレーム名への読み込みURL指定をするのは無理なのでしょうか。 あまり複雑になるのでは更新などの際に複雑になってしまい障害となりますので、断念せざるを得ませんが、何か良い方法があるのでしょうか。  説明がうまく出来ませんが、詳しい方がいらしたら、よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数67
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
noname#134955
noname#134955

f上に次のスクリプトを用意します。 function a() { parent.f下.location.href=(URL(1)); } function b() { parent.f下.f右.location.href=(URL(2)); } 最初に動かすスクリプト a は、URL(1)だけをロードさせます。 URL(1)が最初にロードする右フレームは、次の HTML に固定。 <html><body onload="parent.parent.f上.b()"> </body></html> これが b をキックして、目的の URL(2)が読み込まれます。 関数を2分割したのは、読み込みが非同期で行われるからです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなり、大変申し訳ありません。 あまりJavaに慣れておりませんので、アドバイスを熟読し、試してみます。 大変分かり難い小生の愚問にお答え頂いて感謝しています。 ありがとうございました。 また、その結果、お知らせ致したいと思います。

関連するQ&A

  • フレーム内リンクを禁止したい

    表題のとおり、フレーム内へのリンクを禁止したく <script language="JavaScript"> <!-- if (parent.location.href != window.location.href) parent.location.href= window.location.href; //--> </script> を<head>と</head>の間に入れてみましたが、「書き込みができません。」とエラーになります。 どこか間違っているのでしょうか。

  • サイトをつねにフレーム内に表示させるには?

    フレームの中にサイトをいろいろと表示していますが、サイトによってはフレームを完全に無視して、親ウィンドウ全面に表示する場合がかなりあり、何とかしてフレーム内に表示させる方法はないものかと悩んでいます。parent.frame1.location.href=document.form1.URLs.options[n].text; frame1にあらゆるサイトを表示したいのです。この記述だけではダメみたいですが、他にうまい方法がありましたら、どなたか教えてください。

  • 転送URL使用時のフレーム名

    現在HPで転送URLサービスを利用しているのですが、 転送URLを利用すると転送先のHTMLを読んでしまいそのフレーム内のみ表示してしまいフレーム名が宣言されていないようになってしまいます。 通常では・・・ http://~~/ を呼ぶとindex.htmlが呼ばれその中ではフレームを定義しているので左フレームと右フレームが呼ばれフレーム名はindex.htmlにかかれているためにJavaScriptからはtop.フレーム名.location.href=何とかでOKなのですが・・・ 転送時では・・・ 転送アドレス→index.htmlを呼ぶが、転送アドレスがフレームを使用しているので内部の左フレームと右フレームのみが表示されindex.htmlの情報は見えない・・・ つまりフレーム名が定義されていない・・・のかな? やっていることは、左フレーム内のListboxで右フレームの操作を行っているのですが・・・ このような場合どうすればよいのでしょうか? よろしくお願いいたします。

  • フレームを3つ使ったサイトにしています。それで3つ同時に別のページに飛

    フレームを3つ使ったサイトにしています。それで3つ同時に別のページに飛ばすのに、 (自分は、ホームページビルダーでホームページを作っています) <A href="#" onclick="parent.フレーム1.location.href='ページ1.html'; parent.フレーム2.location.href='ページ2.html'; parent.フレーム3.location.href='ページ3.html'; という書き方をしているのですが、 IEでは作動するのですがFireFoxでは正常に作動しません。 正常に作動されるためには、どういう風に書き換えれば良いのでしょうか? 都合のいい質問かもしれませんが、どうか宜しくお願いします。

  • フレームを3つ使ったサイトにしています。それで3つ同時に別のページに飛

    フレームを3つ使ったサイトにしています。それで3つ同時に別のページに飛ばすのに、 (自分は、ホームページビルダーでホームページを作っています) <A href="#" onclick="parent.フレーム1.location.href='ページ1.html'; parent.フレーム2.location.href='ページ2.html'; parent.フレーム3.location.href='ページ3.html'; という書き方をしているのですが、 IEでは作動するのですがFireFoxでは正常に作動しません。 正常に作動されるためには、どういう風に書き換えれば良いのでしょうか? 都合のいい質問かもしれませんが、どうか宜しくお願いします。

  • JavaScript フレーム

    Javascriptをふたつ書くことはできないんですか? 2つ書いたら「い」のほうしか宣言されないんでどうしたらよろしいですか? Update.java,kensaku2.java syouhin_kensaku.html,syouhin_master.html <html> <head> <title>メニュー</title> </head> <body> <script type="text/javascript"> <!-- function jump(){ // 設定開始(表示するフレーム名とリンク先URLを設定してください) parent.hakusi.location.href = "syouhin_kensaku.html"; parent.hakusi2.location.href = "Update"; // 設定終了 } // --> </script> <a href="#" onClick="jump(); return false;">あ</a> <br> <br> <script> <!-- function jump(){ parent.hakusi.location.href = "syouhin_master.html"; parent.hakusi2.location.href = "kensaku2"; //設定終了 } // --> </script> <br> <a href="#" onClick="jump(); return false;">い</a> <br> <br> </body> </html>

  • 違うフレームのURLを取得したい

    いつもお世話になっております。 上下でフレームが分かれていて、上にメニュー、下に内容が表示されます。 下に表示されているURLによって、上のメニューのボタンの色をVBScriptのIF文を使って変えたいと思っています。 そこで、下のフレームに表示されているURLを上のフレームで取得したいのですが、どうしたら実現できるでしょうか。 JavaScriptでparent.下のフレーム名.location.hrefとすれば、URLを取得できることまでは調べたのですが、JavaScriptからASPに値を渡す方法が分かりませんでした。 ASPだけでURLを取得する方法か、JavaScriptで取得した値をASPに渡す方法のどちらかをご存知の方がいらっしゃったら教えてください! よろしくお願いいたします。

  • フレームの表示順序を制御したい

    いつも参考にさせていただいております。 基本的なことなのですが、左のフレームの内容を表示してから、右のフレームの内容を表示する方法がわかりません。 確か時間差で、片方の表示が完全に終わってから残りを表示させる事ができたような気がしたのですが。 どなたかアドバイス宜しくお願いいたします。

  • フレームで呼び出したhtml名の取得

    お世話になります。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2374524 で、教えて頂いた関数呼び出しについてです。 フレームを左右に分割しています。 左側 frame_left.html    name="left" 右側 最初page1.html    後でページを切り替える name="main" としたとき、 frame_left.htmlで <a href="page2.html" onclick='getTagName();' target="main">ページ2</a> とすると、右側フレームはpage2.htmlに切り替わります。 このとき、getTagName();が、ページが切り替わった後に実行される方法として、 No1.talepandaさんに、 <body onload="window.parent.left.getTagName();"> と、いう方法を教えて頂きました。 ここで、関数getTagName()で、この呼び出したhtml名、つまりpage2.htmlを取得できないものでしょうか。 いろいろと試してみました。 alert("window.parent.mainfrm.location.href="+window.parent.mainfrm.location.href); //framesetを定義したhtml名となってしまう。 alert("window.mainfrm.location.href="+window.mainfrm.location.href); //スクリプト停止 alert("location.href="+location.href); //frame_left.htmlになる。 と、いうことでいずれもダメでした。 このような呼び出し方をした場合、呼び出しもとのhtml名を取得できないのでしょうか。 どうか、よろしくお願いいたします。

  • フレームが現在表示しているURLを調べたい

    「フレームが現在表示しているURLを調べたい」 でもうまくいかないので質問しました。 1.説明 次のようにフレーム定義をします <FRAMESET cols="60%,*"> <FRAME src="l.html" name="l"> <FRAMESET rows="85%,1*"> <FRAME src="ru.html" name="ru"> <FRAME src="rb.html" name="rb"> </FRAMESET> このとき、JavaScript で フレーム ru が表示している URLを以下のJavaScriptを実行すると ru.html が返ります。 →この結果は納得できます。(^^)/ document.write(window.top.ru.location.href) ru.html 次に、フレーム l のHTMLのなかで以下のようにターゲットをruにして、リンクをつくり、それをクリックすると ru の表示内容は当然ながら http://www.asahi.com に切り替わりました。 <TR><TD><A href="http://www.asahi.com" target="ru">朝日</A></TD></TR> ここで、再び以下の命令を実行すると、こんどは、 「エラー:書き込みができません」が出てしまいます。 →http://www.asahi.com が返ることを期待していたのですが (-_-;) document.write(window.top.ru.location.href) エラー:書き込みができません 2.質問 ここで質問なのですが、フレームが現在表示中のURLを得るための記述方法をご存知の方 教えていただけないでしょうか?