アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。お世話になります。

*やりたいこと*
親画面からポップアップ画面(子画面)を出し、子画面でボタンを押したときに
子画面からのcallbackで親画面をサブミットします。このとき子画面は閉じない。
その後親画面を閉じたとき(別のページに移ったとき)に、子画面も閉じたい。

サブミット後の親画面では子画面が認識できなくなり、親画面から子画面を
閉じることができません。
*やりたいこと*ができる方法はありませんか?
ちなみに、サブミットのときに子画面を再表示しようかと考えましたが、子画面に
表示するデータが多く、リソースを使い果たしそうで実行できません。

*親画面のソース(こんなカンジにしたいです)*
<HTML>
<SCRIPT Language="JavaScript">
<!--
var WinSel = null;
function NewOpen(){ //子画面のオープン
WinSel = window.open("NewWin.asp","NewWin","width=200,height=200");
}
function NCallBack(){ //子画面からのコールバック
window.document.frmMain.action = "OyaWin.asp";
window.document.frmMain.target = "_top";
window.document.frmMain.submit();
}
// -->
</SCRIPT>
<BODY><FORM name="frmMain" Method="post">
<INPUT TYPE="button" VALUE="子画面オープン" onCLick="NewOpen();">
<INPUT TYPE="button" VALUE="子画面クローズ" onCLick="WinSel.close;">
</FORM></BODY></HTML>

よろしくお願いします。

A 回答 (4件)

<HTML>


<HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<TITLE>ittochan parent</TITLE>
<SCRIPT LANGUAGE=javascript>
var dWin;
function button2_onclick() {
var child = "children.htm";
dWin = showModelessDialog(child,window,"status:no;dialogWidth:400px;dialogHeight:300px");
}
function button1_onclick() {
dWin.text2.value = text1.value;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>ごめんなさい。IE5(5.5?)限定です。</P>
<P>こういうのはどうでしょうか。</P>
<P>(1)↓のボタンを押して子ウィンドウ(実はコモンダイアログ、でもHTM)を開きます</P>
<P>(2)「送信」 をクリックすると、子ウィンドウのテキストボックスに書き込まれます。</P>
<P><INPUT id=button2 type=button value=子画面を開く name=button2 LANGUAGE=javascript onclick="return button2_onclick()"></P>
<P><INPUT id=text1 name=text1 style="WIDTH: 251px; HEIGHT: 22px" size=32 value=ヘ(・、ヘ)ホイホイ(ノ、・)ノホイホイ>
<INPUT id=button1 type=button value=送信 name=button1 LANGUAGE=javascript onclick="return button1_onclick()"></P>
<P><INPUT id=text2 name=text2></P>
<P></P>
</BODY>
</HTML>

---children.htm---
<HTML>
<HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<TITLE>ittochan child</TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function button1_onclick() {
dialogArguments.text2.value = text1.value;
}
</SCRIPT>
</HEAD>
<BODY bgColor=skyblue leftMargin=30 topMargin=30>
<P>
(3)「送信」をクリックすると<BR> 親ウインドウのテキストボックスに書き込まれます。</P>
<P>
<INPUT id=text1 value='o(・∩・)9"ガンバ!' name=text1>
<INPUT id=button1 type=button value=送信 name=button1 LANGUAGE=javascript onclick="return button1_onclick()"></P>
<P>
<INPUT id=text2 name=text2 style="WIDTH: 239px; HEIGHT: 22px" size=30></P>
</BODY>
</HTML>
    • good
    • 0
この回答へのお礼

サンプルありがとうございました。
ダイアログですね!思いつきもしませんでした。

今この問題は子画面側でタイマーで親画面を監視するようにしてとりあえず
切り抜けています。
あまりいい方法ではないとおもうので、早速試してみます!

お礼日時:2002/09/26 10:35

>親画面からポップアップ画面(子画面)を出し、


>子画面でボタンを押したときに
>子画面からのcallbackで親画面をサブミットします。
>このとき子画面は閉じない。
>その後親画面を閉じたとき
>(別のページに移ったとき)に、子画面も閉じたい。
できます。
サンプル書くので暫くお待ちください。
_〆(・_・ )カキカキ
    • good
    • 0

window.open("about:blank","NewWin","").close();


で子画面(NewWin)を開き直して閉じればよいのでは?

この回答への補足

ご回答ありがとうございます。
この方法で子画面を閉じることはできました!
質問には書いていなかったのですが、本当にやりたいことは
サブミット後も親子関係を保つ(再構築?)ということなのです。
サブミット後も、子画面からのコールバックを受けることはできるのでしょうか?
これを考えると、やっぱり親画面のサブミットと同時に子画面を再表示する
しか考えられないのです!

補足日時:2002/09/24 10:29
    • good
    • 0

これに似たようなことは私もやろうと思ったけど、できなかったな。


「子画面を開いた時の親と、開いた時の子供」
双方がそこから一度でも遷移しちゃうともう認識できないんだよね。
    • good
    • 0
この回答へのお礼

できないですよね~。
あまりにもコテコテな作りをするくらいなら
やらない方向で進めてみるのも手ですかね?
ご意見ありがとうございました!

お礼日時:2002/09/24 10:25

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