- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:好きなタイミングで関数を呼ぶ)
親ウィンドウで関数を動かし、その復帰値で表示処理を変えるページを作る方法
このQ&Aのポイント
- 好きなタイミングで関数を呼ぶ方法についての質問です。親ウィンドウで子ウィンドウを作成し、MyFunc()を呼び出します。その後、MyFunc()からの復帰値を取得し、子ウィンドウを閉じることを目指しています。
- 親ウィンドウでは子ウィンドウをshowModalDialogで前面表示しているため、親ウィンドウには触れられません。VBのように「call MakeChild()」といった方法で親ウィンドウソース内の任意のタイミングで関数を呼ぶ方法を教えてください。
- 親ウィンドウで関数を呼ぶ方法について教えてください。親ウィンドウで子ウィンドウを作成し、MyFunc()を呼び出し、その復帰値を取得する場合、showModalDialogによる前面表示のために親ウィンドウには触れられません。VBのように「call MakeChild()」のように関数を呼ぶ方法を教えていただけますでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
モーダルダイアログが開いている間は親ウィンドウの全機能が停止するので、ダイアログを出している間に処理、というのはできません。 ですので、showModalDialog で開くHTMLの方に MyFunc() を置き、実行し終わったらその結果を親ウィンドウへの返却値として設定してウィンドウを閉じればよいのではないかと思います。 各HTMLは、こんな感じ。 ■親HTML ※任意の場所で var ret = showModalDialog("dialog.html", null, "dialogWidth:300px;dialogHeight:100px"); // ret は MyFunc からの復帰値 ■dialog.html(ダイアログ用) <SCRIPT language="JavaScript"><!-- function OnLoad() { window.returnValue = MyFunc(); window.close(); } function MyFunc() { : return ××; } //--></SCRIPT> <BODY onLoad="OnLoad()"> <TABLE width="100%" height="100%"><TD align="center">処理中・・・</TD></TABLE> </BODY> ※ダイアログが閉じられた時に window.returnValue に設定されていた値が、showModalDialog の戻値になります。
お礼
御礼が遅くなってしまってすみません・・・。 できました!ありがとうございます!! 親子HTMLの間で復帰値の受け渡しができるとは知りませんでした。 他のパターンにも活用できそうです。 ありがとうございました。 また機会がありましたら、よろしくお願いします(ペコリ)。