プロが教えるわが家の防犯対策術!

親ウィンドウ(scriptで言うopener)を指定するtarget属性

(サブフレームではなく)サブウィンドウから親ウィンドウを指定するためのtarget属性は、どう記述すれば良いか悩んでおります…。

たとえば具体的には…

サブウィンドウを以下のアンカータグを使って開きます。

■親ウィンドウ内
<a href="sub_page.html" target="winSub" onclick="window.open('sub_page.html','winSub');return false;">

開かれたサブウィンドウから親ウィンドウをナビゲートする、アンカータグを表示したいのですが、

■サブウィンドウ内
<a href="page2.html" target="★" onclick="opener.location.href='page2.htm';return false;">

上記の★の部分には何を指定すれば良いのか解りません。

※なお、ご覧のとおりscriptオフ環境に対する記述部分が問題になっており、scriptオンでは期待通りの動作をします。

サブウィンドウはサブフレームと同等に扱われると考え、「_parent」や「_top」を指定しても、単に自ウィンドウがページジャンプしただけでした(とりあえずIEのみでテスト)。

どなたか、target属性の指定方法、あるいは、そもそもtarget指定で開いたサブウィンドウには親子関係がない、などの情報など、何かありましたら、ご教授のほどお願いいたします。

A 回答 (2件)

scriptを使わないで、openerウィンドウを制御することはできないと思います。

    • good
    • 0
この回答へのお礼

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

いろいろ代替案を試行錯誤しておりまして、とりあえず、scriptを使わずにopenerウィンドウを指定するには、そのウィンドウに名前が付いていれば良いのですから、その方向で何とかならないか、と考えております。

で、今のところ、縦横100%の見えない名前つきフレームを使って、そこから開いたサブウィンドウからtargetに名前を指定することで、とりあえずは当初の希望どおりの動作を実現できました。

しかしできればもっとスマートな方法をご存知でしたら、ぜひともご教授いただけたらと、お願いいたします。
この方向では、なんとか自ウィンドウに名前をつける方法(scriptでwindow.name="xxx"のような)があれば早いんですが、聞いたこともないですよね…。

ただこれも、もちろんあまり良い方法とは思えず、まぁそもそもこういう形自体が問題なのも解っていますが、要件に対応するため善処しているところでして…。

お礼日時:2005/08/08 23:08

target 属性はあくまでも「フレーム」を扱うものです。

frameset 要素と、frame 要素を用いた親子関係は扱えますが、ウィンドウを越えた関係については少なくとも W3C の勧告にはどのようにすべきかは書かれていません。

知らないフレーム名が指定されていた場合はウィンドウが開きますが、これは指定されたフレームがないので「しかたなく」新しいウィンドウを開く、という消極的な解釈をしているわけです。

参考URL:http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
なるほど、ようするに親子関係のあるウィンドウを制御するにはscriptしかなく、target属性で新しい名前が指定されたら、それはサブウィンドウではなく別の新しいウィンドウとして扱われる、というようなことですね。
大変ためになりました。

質問文のようなことを実現させる別の方法など、どなたかご存知ではないでしょうか。おそらく難しそうですが…、とりあえずもう少し待ってみます、よろしくお願いいたします。

お礼日時:2005/08/08 19:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!