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

IEでサブウィンドウがいくつも開くアプリを作成しようとしています。
子ウィンドウから親ウィンドウ内のオブジェクトを操作したいのですが、単純にopenerでは取得できなく悩んでいます。

登場するのは、
親ウィンドウ・子ウィンドウ1・子ウィンドウ2・子ウィンドウ3・・・
とあるとします。

最初は、親ウィンドウから入り、各子ウィンドウを呼び出すとします。
子ウィンドウ同士は、他の子ウィンドウを呼び出せます。
たとえば、
例1)親→子1→子2
例2)親→子2→子3→子1
と言うことが可能です。
このとき、どこの子からでも、親ウィンドウオブジェクトを取得して親の関数を操作したいのですが、例1の子1は、openerでたどれますが、例2の子1opener/opener/openerと3つたどる必要があります。
ウィンドウのたどり方により、親までのopener回数が変わるため、どう実現すれば、親までの階層を意識することなく親オブジェクトを取得できるのかわからない状況です。
何か手段はありませんでしょうか?

サンプルコードがありましたら紹介お願いします。

A 回答 (1件)

function getOpener(){


var o=opener, p=null;
while(o){
p=o;
o=o.opener;
}
return p;
}

var grandOpener=getOpener();

未検証です。
    • good
    • 0
この回答へのお礼

なるほど、openerがなくなるまで、たどってやるわけですね。
実証していませんが、いけそうです。
これを元に、いろいろ工夫してみます、ありがとうございました。

お礼日時:2008/08/10 21:44

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