• ベストアンサー

showModalDialogで開いた画面から親画面のFunctionを呼び出すには?

showModalDialogで開いた画面から親画面のFunctionを呼び出すには、どのように記述すればよいのでしょうか? ネットで探してみたのですが、該当する内容を探しきれずに困っています。 ご存知の方是非教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

へえ、モーダルウィンドなんていつのまにか サポートしていたんですね。 ブラウザ依存度が高いので、限られた範囲でしか つかえそうもないですけど。 showModalDialogで検索すれば普通にdialogArguments がヒットしますが、気が付きませんでしたか? こんな感じでどうでしょう showModalDialogの第2引数に自分自身のwindowを 入れて投げてやると参照ができるみたいです。 //parent.htm <input type="button" value="開く" onClick="showModalDialog('child.htm',window,'dialogWidth=320px; dialogHeight=240px;');"> <script language="javascript"> x=1; function test(){ alert("test") } </script> //child.htm <script language="javascript"> document.write("親のxの値は「"+window.dialogArguments.x+"」です<br>") </script> <input type="button" value="親の関数を呼ぶ" onClick="window.dialogArguments.test()">

Choco1854
質問者

お礼

早急な回答本当にアリガトウございます。 >showModalDialogの第2引数に自分自身のwindowを 入れて投げてやると参照ができるみたいです。 なるほど、、 windowを渡せばいいのですね。 dialogArgumentsは検索結果としては確かに出てきてはいたのですが、 windowを渡して参照するという考えが全く頭になかったため 素通りしていました。(^^A ご記述いただいたサンプルで動作確認後、実際の PGに組み込んでみたところ、うまく参照できました! とても助かりました。 ありがとうございました。

関連するQ&A

  • showModalDialogで開いた画面をonChangeでリロードするには・・・

    初めて投稿します。今、showModalDialogで困っています。 まず画面上のボタンからjsファイル内のJavaScriptのメソッドを呼び出し、 その中でshowModalDialogを使って開いた小さな窓にカレンダーを表示します。 このカレンダー画面には月を選択するセレクトボックスがあり、 このセレクトボックスで月を変更した際にカレンダーをリロードする 処理を作ろうとしています。しかしこのリロードで「オブジェクトを 指定してください」というエラーが出てしまいます。 何がいけないのでしょうか・・・? 処理内容はこんな感じ・・・ 1.jsファイル内のJavaScriptメソッドのshowModalDialog呼び出し部分 window.showModalDialog("modal.html"); 2.呼び出されたmodal.html内ではbodyタグを以下のようにする <body onLoad="javascript:loadPage();"> 3.2で呼び出されたmodal.html内のJavaScript、loadPage()はこんな感じ writePage()は1のjsファイル内の別のメソッド function loadPage() { writePage(); } 4.3で呼び出されたjsファイル内のJavaScript、writePage()はこんな感じ function writePage() { this.document.open(); this.document.writeln("Calendar"); this.document.writeln("<select onChange=\"javascript:loadPage();\">"); this.document.writeln("<option>1月"); this.document.writeln("<option>2月"); this.document.writeln("</select>"); }

  • showModalDialog()による新規ウィンドウ回避方法

    struts + jspで開発を行っています。 showModalDialog()を使用し、子画面で行った事を親画面に反映させるといった開発を行っています。ですが、子画面でsubmit処理を行うと新規ウィンドウとして開かれてしまいます。何か回避方法をご存知の方いらっしゃいませんでしょうか?よろしくお願い致します。

  • showModalDialogでxml

    いつもお世話になっています。 IE6で、 showModalDialogをつかって、xmlのurlを指定すると、ウインドウが真っ白のままで何も表示されません。 showModalDialogでは、xmlは表示出来ないのですか? openメソッドにしてみると、表示されます。(;; ご存じの方教えてください。よろしくお願いします。

    • ベストアンサー
    • XML
  • showModalDialogのステータスの表示方法

    showModalDialogでステータスをONにしておきたいのですが。 でも内容を何も表示しないようにしたいと思っています。 この制御は難しいでしょうか? 何かよいアドバイスが御座いましたら、是非、教えて下さい。 また、これは無理だろうとは思っているのですが。。。 画面最上部のタイトルに--Webダイアロウという表示内容を 任意に変更することはできますか? showModalDialogの属性等を調べてみて無理そうだとは思うのですが 裏ワザ的に何かよいアドバイスが御座いましたら どうぞ宜しくお願い致します。

  • jQueryの $(function(){ });

    jQueryについて基本的な質問をさせてください。 基本的にjQueryは、お約束として $(document).ready(function(){ }); と記述し、その中に実行処理を書いていくと思うのですが loadを待たずに実行させたい時は $(document).ready(function(){ });は記述しなくてもよいのでしょうか? どの本をみてもjQueryのお約束事みたいに $(document).ready(function(){ }); を必ず書くと載っています。 自分でやってみたところ、記述しないでも問題なく動いているのですが、 やっぱり $(document).ready(function(){ }); を記述しないと、何か問題があるのでしょうか? ご存知の方、教えてください。 どうぞ宜しくお願いたします。

  • showModalDialogの代替について

    当然ながら、window.returnValue、これ一行で親は子画面からの情報は入手出来ましたが、IE廃止に伴って、callback関数に変更して対応しました。 それで一つ問題がありまして、キャンセルの情報を入手したいです。 子画面.htmlの中の画面情報。(簡素化するため短めに編集しました) *************************************************************** <input size="30" type="password" id="addr_pass" value=""> <input type="button" value="OK" onClick="check()"> <input type="button" value="キャンセル" onclick="window.close();"> *************************************************************** 子画面.jsの中身 *************************************************************** var callbackid = window.name; var returnValue = { addr_pass: document.getElementById('addr_pass').value }; window.opener[callbackid](returnValue); window.close(); ******************************************************************* addr_passの入力情報は親.htmlに返す事は可能になりましたが 親.htmlにキャンセル情報を返すためには、何かしら必要になると思いますが、どのようにすれば宜しいでしょうか。 よろしくお願いいたします。 追記。 showModalDialogは便利なのに需要がないのはわかりますけどね。

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • 画面上のファンクションキーの消し方

    新しくdynabookを使い始めました。 現在、画面の上の方に、F1, F2・・・といったファンクションキーが、薄く表示されています。普段の作業では邪魔になるので、画面上に出ないようにしたいのですが、設定のしかたがわかりません。 設定方法を教えてください。お願いします。

  • VBAからOracle上のファンクションの呼び出しについて

    ACCESS2000のVBAを使ってOracleサーバ上の ファンクション(PL/SQL)を呼び出したいのですが そのように記述すればいいのかがわかりません ご存知の方教えて下さい お願い致します

  • ダイアログ内での遷移方法

    親ウィンドウのリンクからJavaScriptのshowModalDialogでダイアログを表示する画面を作成しているのですが、表示したダイアログの画面にもリンクがあってダイアログ内で遷移してほしいのですが、別ウィンドウが開いてそちらの方に画面が表示されてしまいます。 JavaScriptのshowModalDialogやreturnValueで試しているのですがどうもうまくいきません。 何か方法をご存知の方いらっしゃいませんでしょうか? よろしくお願い致します。