• ベストアンサー

topから孫フレームへのアクセス方法

トップフレームから↓の感じでフレーム階層を作っています。 [topフレーム] ... <iframe src="子.jsp"/> ... [子.jsp] <frameset rows="50%,50%" id="ko">  <frame src="孫1.jsp" id="mago1"/>  <frame src="孫2.jsp" id="mago2"/> </frameset> topフレームから「孫1.jsp」「孫2.jsp」内の要素にJavaScriptでアクセスする方法があれば教えてください。

  • kames
  • お礼率32% (30/91)

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ Firefox等にに対応するには、name属性を使ってください。 <iframe src="子.jsp" name="iframe0"/>  <frame src="孫1.jsp" id="mago1" name="mago1"/>  <frame src="孫2.jsp" id="mago2" name="mago2"/> そうすれば、name="mago2"のwindowオブジェクトに window.frames.iframe0.mago2 window.frames['iframe0']['mago2'] window.frames.iframe0['mago2'] また、ほかのフレームがないとき、インデックスを利用して window.frames[0].frames[1] としてアクセスできます。

その他の回答 (2)

  • yutuo
  • ベストアンサー率50% (4/8)
回答No.3

IEでは,例えば:孫1のJavaScriptのfunctionは test() アクセスする方法は window.parent.mago1.test();

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

frame名「mago1」「mago2」で操作   じゃない? http://www.tohoho-web.com/js/window.htm#name

関連するQ&A

  • フレームがばらばらに・・・

    ホームページを上下二つのフレームに分けて作ったのですが、 ウィンドウを大きくすると二つが離れてしまいます。 <frameset rows="430,88" frameborder="NO" border="0" framespacing="0"> <frame src="top_frame_main.html" name="mainFrame" marginheight=0> <frame src="top_frame_navi.html" name="naviFrame" marginheight=0> </frameset> 上の二つのフレームが同じ距離を常に保つようにするには どうすればよいでしょうか?教えてください!

    • ベストアンサー
    • HTML
  • フレーム分割のスクリプトについて

    画面を3つに分割し、top1,top2,top3を作成して、 top1のみ、右端のスクロールバーを無し(画面固定)にするには、どのようにすればよいのでしょうか? <html><head> <title>top</title> </head> <frameset rows="350,*"> <frame src="top1.html"name="top1"> <frameset cols="200,*"> <frame src="top2.html"> <frame src="top3.html"name="bottom"> </frameset> </html> 宜しくお願い致しますm(_ _)m

  • iframeにリクエストattributeを渡したい。

    トップフレームで受けたリクエスト属性(bean)をフレーム分割した全てのJSPで使用したいのですが、どうすればいいのでしょうか? (Strutsを使用しています。) JSPイメージは。 ・リクエストを受けるJSP(Actionから呼ばれる)  ~  <iframe src="/fset.jsp">  ~ ・フレームセット用JSP(fset.jsp)  <frameset cols="50%,50%" border="0">   <frame name="left" src="/f1.jsp"> ← この中!   <frame name="right" src="/f2.jsp"> ← この中!  </frameset> 上記のように「f1.jsp」などの中でtopフレームで受けたrquestを使いたいのですがどうすればいいでしょうか?

    • ベストアンサー
    • Java
  • HTMLでフレームのトップの中でサーブレットを呼びたいです

    HTMLでフレームのトップの中でサーブレットを呼びたいです <FRAMESET rows="13%,87%" cols="25%,75%" frameborder="0"> <FRAME src="uePage.html" name="hidariue" scrolling="no"> <FRAME src="migiue.html" name="migiue" scrolling="no" norisaize> <FRAME src="hidariTop.html" name="hidari"> <FRAME src="NewPage.html" name="migi"> <NOFRAMES> ここの中でよべるのですか?教えてください!

    • ベストアンサー
    • HTML
  • JS 違うフレームのCSSを読み替える方法

    いつもお世話になります。 過去に何度も出ている質問なのですが、 どれをやってみてもうまくいきませんので、 今更ながら質問させていただきます。 JavaScriptを使用して、一つの子フレームのコンボボックスを 操作すると、もう一つの子フレームのCSSが変化する内容を 実現したいと思っています。 様々な過去ログなどを見て、自分なりに修正してみたのですが、 上手くいきません。 コードを記述いたしますので、悪い点などを指摘し、正しい答えを 教えていただければ幸いです。 以下コード ---------------- フレームセット <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title></title> </head> <frameset cols="200,*"> <frame src="menu.htm" id='menu'> <!-- ↑ここは今回は関係なし --> <frameset rows="100,*"> <frame src="top.htm" id="up"> <frame src="page0.htm" name="main1"> </frameset> <noframes> <body> <p>フレームの代替内容</p> </body> </noframes> </frameset> </html> 子フレーム(操作する側) <html> <head> <title></title> <script type="text/javascript" src="common.js"></script> </head> <body> <select onchange="changesytle(value);"> <option value="style.css">標準スタイル</option> <option value="">スタイルなし</option> </select> </body> </html> 子フレーム(操作される側) <html> <head> <link rel="stylesheet" type="text/css" href="style.css" id="mystyle"> <!-- これを操作しようとしています。 --> <title></title> </head> <body> <h1>ここの文字の色が変わります。</h1> </body> </html> common.js function changesytle(cssfile) { main1.document.getElementById('mystyle').href = cssfile; // ↑これがうまくいかない } style.css h1 { color : #ff0000; } --------------------- 以上です。 何卒よろしくお願いいたします。

  • ドリームウィーバー8 フレームへのリンク

    質問です。 ドリームウィーバー8を使って。 3分割したフレーム内 (上top、左left、右main) このように分割しており。フレーム名もそのようにしています。 上top にテキストのリンクを張り 右mainにリンクページを表示したいのですが、どうしても 別ウィンドウが立ち上がり、mainにリンクページが表示されません。 ネットや本で調べて記述どおりにやっていますが どうしても別ウィンドウが立ち上がる状態です。 どなたか、この原因がわかりますでしょうか? <a href="../testHP/public_html/link/Store-introduction.html" target="main">リンクです</a> topフレームのタグはこのように記述してます。 フレーム名も間違っていません。 indexのタグはこうです <title>無題ドキュメント</title> </head> <frameset rows="92,584" cols="*"> <frame src="UntitledFrame-7.html"id="top"/> <frameset rows="*" cols="115,912"> <frame src="UntitledFrame-1.html"id="laft"/> <frame src="UntitledFrame-8.html"id="main"/> </frameset> </frameset> <noframes><body> </body> </noframes></html> これでなにか原因がわかれば。 ご教授お願いします。

  • フレームの分割について

    HPを作成中です。3分割にして左右、下にフレームを作っていますが思うようにできません。 <html> <head> <frameset cols="47%,53%"frameborder="1">      <frame src="left.html"> <frame src="right.html"> <frameset rows="85%,15%"frameborder="1"> <frame src="bottom.html"> </frameset> </frameset> </head> </html> 左右は作れますが下のフレームができません。 教えて下さいお願いします。

  • 常時ロード後にフォーカスを合わせる(フレーム使用)

    JavaScriptでお願いします。 フレームを使用しています。 contentのフレームがロードし終わったら、menu.html内のテキストボックスにフォーカスを合わせたいです。 index.htmlの一部が <frameset rows="60,*" frameborder="1">   <frame src="menu.html" scrolling="no" name="menu">   <frame src="content.html" name="content"> </frameset> のようになっています。 上記の<frame src="content.html" name="content">に「onload="~.focus()"」を追加しようと思ったのですが、どのようにmenu.htmlのテキストボックスにアクセスしたらよいかわかりませんでした。

  • ブラウザによってフレームの表示が異なるのですが..

    はじめまして。 現在下記のような形のHPを制作しているのですが、フレームが難しくてなかなか進めません。 ブラウザやそれぞれの環境によって見え方が違ってしまいます。 私の環境では真ん中にぎゅっと詰まってスクロールが出てしまうような小さな見え方になってしまっています。 どの環境で見ても統一させるにはどのようにしたら良いのでしょうか。 ------------------------------ 上の固定バー ------------------------------ メニュー|内容     |     |     |     | ------------------------------ 下の固定バー ------------------------------ ソースは以下のように組みました。 <frameset rows="10%,*" cols="*" framespacing="0" frameborder="no" border="0"> <frame src="Margin/Index.html" scrolling="No" noresize title="topFrame"> <frameset rows="*,230" cols="*" framespacing="0" frameborder="no" border="0"> <frameset cols="215,*" frameborder="no" border="0" framespacing="0"> <frame src="Margin/Index.html" scrolling="No" noresize title="menuBarFrame"> <frameset cols="*,25%" frameborder="no" border="0" framespacing="0"> <frameset rows="64,*" frameborder="no" border="0" framespacing="0"> <frame src="topbar/topbar.html" scrolling="No" noresize title="topBarFrame"> <frameset rows="*,41" cols="*" framespacing="0" frameborder="no" border="0"> <frameset rows="*" cols="178,*" framespacing="0" frameborder="no" border="0"> <frame src="menu/menu.html" scrolling="No" noresize title="leftFrame1"> <frame src="top/top.html" name="main" title="topFrame"></frameset> <frame src="bottombar/bottomBar.html" scrolling="No" noresize title="bottomFrame1"> </frameset> </frameset> <frame src="Margin/Index.html" scrolling="No" noresize title="rightFrame"> </frameset> </frameset> <frame src="Margin/Index.html" scrolling="No" noresize title="MenuBarFrame"> </frameset> </frameset> <noframes> ------------- また、現在フレームは推奨されないのも知っているので、 オススメの組み方がありましたら教えていただけませんでしょうか。 HTML等に関してまったくの初心者ですので、判り易く教えていただけたら大変有り難く思います。どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • 直フレーム内ページにきた場合とトップからきた場合の「戻る」について

    以前「複数フレーム内リンク」でお世話になりました。今度も煮詰まってしまいました。 ・トップ→コーナー→末端ページという構成 ・「上部・左・メイン」の3つフレームを使用している状況です。 検索でフレーム内の末端ページに飛んできた人に「戻る」ボタンでコーナーのindexにフレーム有りの状態で表示したいのです。 只今、上記については作動できるのですが、逆にトップ→コーナー→末端ページと通常の流れできた人が、その「戻る」を押すと3つのフレームの中のメインフレームにまた3つのフレームが表示されてしまいます。 戻るに「target='_top'」や「target='_parent'」とつけてもいきません。といいますか、付け方がわかりません。 ソースは↓ <script language="JavaScript"> function framepage(filename) { document.open(); document.write("<frameset rows='80,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='topFrame' src='上部.html' scrolling='NO' noresize>"); document.write("<frameset cols='152,*' frameborder='NO' marginwidth='0' marginheight='0' framespacing='0' border='0' target='_top'>"); document.write("<frame name='leftFrame' src='左.html' scrolling='NO' noresize>"); document.write("<frame name='main' src=" + filename + ">"); document.write("</frameset>"); document.write("</frameset>"); document.close(); } </script> bodyの方は↓ <a href="javascript:framepage('../index.html')">[戻る]</a> となっています。 どなたか宜しくお願いします!

専門家に質問してみよう