- ベストアンサー
親ウィンドウの別フレームを子ウィンドウから操作したい
いろいろ試しているのですが、理解不足のせいでしょうが、どうやってもできません! 内容は以下の通り(分からないのは3)です。どうぞ宜しくお願いいたします。 1:画面を、AとBの2つのフレームに分割しています。 【index.html】 <frameset> <frame src="A.html" name="A"> <frame src="B.html" name="B"> </frameset> 2:Aフレーム内に記述してあるaaaアンカーをクリックすると、子画面ko.htmlを開きます。 <a href="javascript:void(0)" onclick="window.open('path=ko.html','_blank');">子画面</a> 3:ko.htmlではbbbというアンカーがあって、それをクリックすると、"親画面のBフレームにbbbで指定したリンク内容を表示したい"のです。 <a href="javascript:void(0)" onclick="opener.window.location=('B?path=/home/~/~/ZZZ.html');">開きたいファイルZZZ.html</a> と書くと、openerはAだからAにZZZ.htmlの内容が表示されてしまうので、(全くおかしな記述をしているのかもしれませんが・・・(- -;))あちこち調べながら、 B.opener.window.locationとか、 B.opener.window.location.hrefとか、 parent.B.window.locationとか、 parent.frames[1].window.locationとか、 ほかにもいろいろやってみたのですが、出来ませんでした・・・。 このような別フレームの操作が出来る方法があれば教えてください。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご質問の場合、子ウィンドウ(ko.html)からみて、openerはフレームAになっていますから、window.opener~はフレームAに対する操作を意味することになります。 Bフレームを取得するには window.opener.top.document.getElementsByName('B')[0].src='http://www.yahoo.co.jp/'; などのようにしてあげればよいかと… ところで現状で、ko.htmlは開いているのでしょうか? (こちらの環境では、ご質問の通りだと開きません)
その他の回答 (2)
- yyr446
- ベストアンサー率65% (870/1330)
#1補足 jabascriptはfunctionとしてindex.html に作っておいて、子供からparent.で呼ぶわけです
- yyr446
- ベストアンサー率65% (870/1330)
<frame>にid属性を振っておいて、DOMで直接属性操作すれば <frame src="A.html" name="A" id="A"> <frame src="B.html" name="B" id="B"> document.getElementById("B").src = "ZZZ.html"; 出来なかったかなあ?あるいは frameB = document.getElementById("B"); frameB.setAttribute("src","ZZZ.html");
お礼
早速の回答、どうもありがとうございました。 やってみたのですが、何故か上手くいきませんでした。 idを使ってみるという方法もあるのですね。 javascriptについてもう少し勉強しようと思います。 ありがとうございました。 <m(_ _)m>
お礼
回答、ありがとうございます。 >window.opener.top.document.getElementsByName('B')[0].src='http://www.yahoo.co.jp/'; この方法で、上手くいきました!! ありがとうございました。 『~document.getElementsByName('B')[0].src~』の部分、 も少し勉強してみます。 <m(_ _)m> ところで、ko.htmlは開いています。 質問では少し、記述を端折りましたが、大体下記の通りです。 <a href="javascript:void(0)" onclick="window.open('/~/~?path=~/~/~/ko.html','_blank','width=400,height=300, menuber=no,toolbar=no,scrollbars=yes,status=yes,resizable=yes');">子画面</a> ありがとうございました!