QA@IT
«回答へ戻る

回答を投稿

子画面を閉じるには、window.closeを使用したらできるのかなとは思うのですが、
閉じる際に、抽出した値を親画面に返したいのですが、どのようにしたらいいのか
が分かりません。

「抽出した値」というのは、たぶん、子画面でポストバックしてサーバー側で抽出するのだと思いますが、そうであれば、以下の記事のようにしてはいかがですか?

window.opener を使って PostBack
http://surferonwww.info/BlogEngine/post/2010/11/04/PostBack-operation-using-window-opener.aspx

上記の例は、子画面でポストバックして DB のレコードを編集してから再描画するときにスクリプトを追加し、それによって親画面をポストバックすると共に子画面を閉じるというシナリオです。

これを、例えば、子画面でポストバックして「抽出した値」を Session に保存 ⇒ 子画面を再描画するときにスクリプトを追加 ⇒ それによって親画面をポストバックすると共に子画面を閉じる ⇒ 親画面はポストバック時にサーバー側で Session に保存された値を取得・・・ということで目的が果たせると思います。

子画面でポストバックしなくても、すべてクライアント側で処置できると言うことであれば、もっと簡単に、window.opener を使って親画面の隠しフィールドなどに値を渡すことが可能だと思います。

#ところで、質問者さんが以前に立てたスレッド http://qa.atmarkit.co.jp/q/4128 が放置状態です。クローズするまでフォローしていただけませんか? ModalPopup で解決する必要がなくなったので中断ということであれば、その旨書いていただければと思います。

> 子画面を閉じるには、window.closeを使用したらできるのかなとは思うのですが、
> 閉じる際に、抽出した値を親画面に返したいのですが、どのようにしたらいいのか
> が分かりません。

「抽出した値」というのは、たぶん、子画面でポストバックしてサーバー側で抽出するのだと思いますが、そうであれば、以下の記事のようにしてはいかがですか?

window.opener を使って PostBack
http://surferonwww.info/BlogEngine/post/2010/11/04/PostBack-operation-using-window-opener.aspx

上記の例は、子画面でポストバックして DB のレコードを編集してから再描画するときにスクリプトを追加し、それによって親画面をポストバックすると共に子画面を閉じるというシナリオです。

これを、例えば、子画面でポストバックして「抽出した値」を Session に保存 ⇒ 子画面を再描画するときにスクリプトを追加 ⇒ それによって親画面をポストバックすると共に子画面を閉じる ⇒ 親画面はポストバック時にサーバー側で Session に保存された値を取得・・・ということで目的が果たせると思います。

子画面でポストバックしなくても、すべてクライアント側で処置できると言うことであれば、もっと簡単に、window.opener を使って親画面の隠しフィールドなどに値を渡すことが可能だと思います。


#ところで、質問者さんが以前に立てたスレッド http://qa.atmarkit.co.jp/q/4128 が放置状態です。クローズするまでフォローしていただけませんか? ModalPopup で解決する必要がなくなったので中断ということであれば、その旨書いていただければと思います。