- PR -

親画面、子画面、孫画面の画面処理の件について

1
投稿者投稿内容
いのき
ベテラン
会議室デビュー日: 2005/10/06
投稿数: 88
投稿日時: 2005-11-04 10:20
いつもお世話になります。いのきです。

先日ご質問しました「親画面、子画面、孫画面」に関連する内容です。

2点あります。ちなみに両方ともjavascriptで、子画面、孫画面はそれぞれ「Window.Open」で開いています。

****************************************
1.親画面から直接孫画面を閉じる場合、どのような処理で実現できるでしょうか?
2.親画面で子画面が閉じたという情報は取得できるでしょうか?
****************************************

1.に関しての補足説明です。
 @「子画面の「OnUnlord」処理で孫画面を閉じる」
 A「親画面の「OnUnlord」処理で子画面を閉じる」
 という処理なら、孫画面も閉じるのですが、子画面に関しては特殊処理を行っており、@が行えない状態です。
 よって、親画面から直接孫画面を閉じたいのですが、できるでしょうか?

2.に関しての補足説明です。
 これも1.と同様に子画面の「OnUnlord」処理が使用できると実現できるのですが、「OnUnlord」処理が使用できない状態です。
 また、画面の再描画(サブミット処理)なしで実現したいのですが可能でしょうか?

以上、ご教授を宜しくお願い致します。
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-11-04 10:54
こんにちは、でっちです。

どちらもJavaScriptだけでできますよ。

1.親画面に、孫画面のウィンドウハンドルを渡してあげればClose処理ができます。
コード:

◎親画面
var grandchildwhd;
//孫画面のウィンドウハンドルを受け取る
function setgrandchildwhd(whd){
grandchildwhd = whd;
}
//孫画面を閉じる
function grandchildclose(){
if (grandchildwhd !=null
&& typeof(grandchildwhd.window)=="object"
&& !grandchildwhd.window.closed){
grandchildwhd.close();
}
}
◎子画面
//孫を開く
var whd = window.open(...);
opener.setgrandchildwhd(whd);


として、あげればOKです。

2に関しては、typeofやclosedプロパティを使用して判定します。
と言うか、↑のgrandchildcloseで行っている判定です。




[ メッセージ編集済み 編集者: でっち6号 編集日時 2005-11-04 11:09 ]
いのき
ベテラン
会議室デビュー日: 2005/10/06
投稿数: 88
投稿日時: 2005-11-04 12:43
いつもお世話になります。いのきです。

でっち6号さん、早速のご回答、誠にありがとうございました。
@、Aとも正常に処理できました。
なるほど、子画面から孫画面を開いたと同時に親(opener)にもその情報を持たせるのですね。思いつきませんでした(涙)。
ちなみに、こちらのスレはクローズするとして、また別でスレをたてますので、よければそちらのスレもご覧になってください(照)。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)