• 締切済み

子ウインドウを閉じたい

お世話になります。 cgiアプリを組んでいます。 あるwindow(Awin - gmn00表示)が、ある画面(gmn01)を表示した際に、subwindow(Bwin)を開きました。 で、Awinが前の画面に戻ったときに、Bwinをcloseしたいのです。 Awinのgmn01には、戻るボタンがあり、戻るボタン処理でBwinをcloseすれば 当然閉じます。 ただ、それ以外にも異常系をふまえると、画面が戻る条件はたくさんあるので、 gmn00の初期処理などで Bwinが存在したら、Bwinをclodeするように試しましたが、 gmn00で、Bwinのオブジェクトが取得できません。 null になってしまいます。 なんかゴチャゴチャ書いてしまいましたが、わかっていただけますでしょうか。 ようするに、画面遷移先で開いた子ウィンドウは、遷移先が表示されている時だけ必要なので 別の画面に遷移した場合は、子ウィンドウは閉じたいのです。 やはり、遷移先の画面で、他の画面に遷移する箇所全てで 子ウィンドウのcloseをしないとダメでしょうか? アドバイス、よろしくお願いします。

みんなの回答

  • wasp500jp
  • ベストアンサー率27% (3/11)
回答No.2

 ホント、判りかねる横文字が多いので、問題がわかりませんが、先ずOSは何なのでしょうか?子ウィンドウってどういう意味でしょうか?初めて聞きます。ウィンドウは一枚でタブがたくさんあって「別の画面に遷移した場合は、子ウィンドウは閉じたいのです」閉じたいのであれば、xをクリックで消えるでしょう。う~ん、で、子ウィンドウは閉じたいのであればxで閉じればよいんじゃありませんか?私には子ウィンドウって考えたことがないので、closeっして閉じるっていえばいいのであって、まぁお詳しいんでしょうが、「子ウィンドウは、遷移先が表示されている時だけ必要なので別の画面に遷移した場合は、子ウィンドウは閉じたい」・・・?子ウィンドウがあれば親ウィンドウがあるのでしょうか?どの時点で親になり子になるのでしょう?  子ウィンドウのcloseをされたよいんじゃないですか?「別の画面に遷移した場合は、子ウィンドウは閉じたい」のであれば閉じればいいのでは?なんかいったいなにが問題なのですか?何にこまっている、何がしたいって、すればいいのじゃないですか?問題が判らないと、回答もありませんよね。  「画面遷移先で開いた子ウィンドウは、遷移先が表示されている時だけ必要なので別の画面に遷移した場合は、子ウィンドウは閉じたいのです。」開いた子ウィンドウは開いて「遷移先が表示されている時だけ必要なので別の画面に遷移した場合は・・・」子ウィンドウを開いて子ウィンドウを閉じたい?書いてあることは、なんかcloseしたいって、closeすればいいのじゃありませんか?

jg1wjz
質問者

お礼

wasp500jp さん、ありがとうございます。 すみません、システムのカスタマイズ中でいろいろ質問させていただいている中、 頭の中でつながっている質問になってしまい、状況がこの質問だけではよくわからなくなっているようで申し訳ありません。 子ウィンドウとは、親画面からwindow.openで開いたサブウィンドウになります。 質問は親画面が画面遷移したら、自動的にサブウインドウもcloseしたかったのです。 自動的といいますか、ボタンクリック等のイベントドリブンでサブウインドウを閉じるのではなく、 親画面がcgiアプリにより、結果的に画面遷移したら自動でサブウインドウをcloseしたかったのです。 親画面はいろんな条件や処理により、遷移する箇所(ソースコードレベル)がたくさん有りまして、 その箇所全てにサブウインドウをcloseする処理を入れるのはかなり大変なこと、 また漏れが出そうなので、どこかで(=サブウィンドウをopenした画面が変わったら)一発でcloseすることはできないのかな? と質問させていただきました。 環境は IIS cgiアプリをc++で構築していまして、 サブウィンドウのclose処理はJavaScriptで行いたいです。

回答No.1

別の画面に遷移した場合って、その子ウィンドウの事を「子ウィンドウ」として操作できましたっけ? 記憶違いだったらすいません。

jg1wjz
質問者

お礼

muuming2001 さん、ありがとうございます。 どうもできないような気がします。 調べてもわかりませんでした。 で、別の方法を考えました。 親ウィンドウに固有のIDを持たせ、 子ウィンドウで、親のそのIDをチェックし、 なかった(=画面遷移した)ら自分を閉じる方法でできるかなと 今、確認中です。 戻るボタンクリックで試したら、うまくいきました。 こんな方法でよいのか、悪いのか、、、わかりませんが いろんなパターンがあるので、これからそれらを全て試験したいと思います。 ありがとうございました。

関連するQ&A