• ベストアンサー

子画面へデータを渡したい!

親画面でテキスト入力した内容を、 showModalDialogで開いたポップアップの子画面で表示して、更にHiddenで値を持たせたいんですが、上手く出来ないんです... (親側制御) val = test.asp args = new Array(); args[0] = document.FRM00.txtUSRID.value; args[1] = document.FRM00.work_date.value; ret = window.showModalDialog(val,args); (子画面制御) Private myUser myUser = window.dialog.arguments[0].value; myTargetDate = window.dialog.arguments[1].value; 子画面で、VBScriptで宣言した変数へ格納しようとしてるのですが、やっぱり無理なんでしょうか? もし無理なら、何か他に手はないのでしょうか???

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

  • ベストアンサー
  • mirurin
  • ベストアンサー率43% (48/111)
回答No.3

dialogArgumentsはJavaScriptのプロパティですので <Script>内で使用しなくてはいけません。 あとはNo.1の方のおっしゃるとおり、 window.dialog.arguments[0].value; ではなく window.dialogArguments[0]; ですね。 (子画面側ソース) <HTML> <Head> <Script Language="JavaScript"> <!-- myName = window.dialogArguments[0]; myTel = window.dialogArguments[1]; //--> </Script> <Title>PopUpTest</Title></Head> <Body> <Center> <Script Language="JavaScript"> <!-- document.write("名前:"+myName+"<BR>"); document.write("Tel:"+myTel); //--> </Script> </Center> </Body> </HTML>

Kalen_F
質問者

お礼

上手く出来ました! 有難うございますー\(^o^)/

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

Javascriptでやるのであれば、 (親側制御) window.open(val); (子画面制御) myUser = opener.document.FRM00.txtUSRID.value; myTargetDate = opener.document.FRM00.work_date.value;

Kalen_F
質問者

補足

普通にopenwindowではポップアップにならないので、 ダメなんです。 書いた親子ソースを記載しますので、何かお気づきの点がありましたら、教えて下さい!! (親画面側ソース) <HTML> <Head><Title>てすとぺーじ</Title> <Script Language="JavaScript"> <!-- function popuptest(){ val = "test2.asp"; args = new Array(); args[0] = document.FRM00.txtName.value; args[1] = document.FRM00.txtTel.value; ret = window.showModalDialog(val,args); } //--> </Script> <Head> <Body> <Form Name="FRM00"> 名前<Input type="text" name="txtName"><BR> Tel<Input type="text" name="txtTel"><BR> <Input type="button" value="確認" onClick="popuptest()"> </Form> </Body> </HTML> (子画面側ソース) <% Private myName Priavte myTel myName = window.dialog.arguments[0].value; myTel = window.dialog.arguments[1].value; %> <HTML> <Head><Title>PopUpTest</Title></Head> <Body> <Center> 名前:<% =myName %><BR> Tel:<% =myTel %> </Center> </Body> </HTML>

  • wo-007
  • ベストアンサー率68% (15/22)
回答No.1

>myUser = window.dialog.arguments[0].value; >myTargetDate = window.dialog.arguments[1].value; 上の記述を myUser = window.dialogArguments[0]; myTargetDate = window.dialogArguments[0]; に変えてみてください。 私の環境では動作しました。 お試しください。

Kalen_F
質問者

補足

dialigとargumentの間のドットを取れば良いのでしょうか?

関連するQ&A

  • VBScriptで子画面へ配列のデータを渡したい!

    子画面(showModalDialogでオープン)で親画面から渡された引数を利用したいです。 親は配列を渡して、子はその配列の中身を参照したいです。 下記の例でやると、「エラー:型が一致しません。:'window.dialogArguments'」と、(1)の所で言われてしまいます。 色々探したのですが、JavaScriptの例や配列ではない場合の例ばかりでJVScriptの場合のやりかたがわかりません。 どなたか教えてください。 親画面 <script language="vbScript"> <!-- dim arg(20) arg(1) = "Value1" ~ arg(1) = "Value20" window.showModalDialog "ko.html",arg --> </script> 子画面 <script language="vbScript"> <!-- dim arg(20) arg = window.dialogArguments ・・・(1) Msgbox arg(1) --> </script>

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

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

  • 子画面から親画面のデータを操作するには?

    4つのフレームから成る画面より子画面を開き、 (2番目のフレームに子画面を呼び出すボタンが有ります) 子画面から親画面の2番目と3番目のフレームのデータを 操作したいのですが、上手くいきません。 window.top.opener.frames[1].formxxx.xxxx.value=xxxxx; window.top.opener.frames[2].formxxx.xxxx.value=xxxxx; で良いと思ったのですが。。。 どなたか分かる方いらっしゃったら教えて下さい。

  • window.openの件について

    いつもお世話になります。 開発で困っているわけでもないのですが、1つ質問をさせてください。 OS:WinXP、IE:6.0、javascriptの環境でwindow.openを使用した時、window.showModalDialogみたいに子画面を閉じない限り、親画面の制御を不可にすることはできるのでしょうか?

  • 親画面からポップアップ画面が操作できない?!

    こんにちは。お世話になります。 *やりたいこと* 親画面からポップアップ画面(子画面)を出し、子画面でボタンを押したときに 子画面からの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> よろしくお願いします。

  • 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は便利なのに需要がないのはわかりますけどね。

  • 子windowに配列を渡したいのですが

    お世話になります QNo.483099にて同じような感じの質問が出ていたのですが、 ちょっと本質が違うような気がするので、別に質問させていただきます。 まず、親画面(A.html)にて配列を作成します(仮にarrayとします) 次に、ボタンのクリックイベントで子window(B.html)を開き、そのwindowにarrayの要素を含んだリストボックスを表示させたいのですが、 子windowを開くロジックを window.showModalDialog('B.html','array','dialogHeight:150px;dialogWidth:300px;status:no;') としてみたのですがうまくいきません。 これをjavascriptのみで実装することは可能なのでしょうか? よろしくお願いします。

  • 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>"); }

  • 子ウィンドウから親ウィンドウのチェックボックス

    おそれいります。 現在、子ウインドウで、window.opener.document.getElementById('text1').value='4444'; window.opener.document.getElementById('text2').value='こんにちは'; window.opener.document.getElementById('text3').value='今日は晴れ'; として、親ウィンドウで <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> へ値をセット出来ているのですが、 この記述の流れで親ウィンドウのチェックボックスを子ウィンドウからtrueにすることはできるでしょうか。よろしくお願いします。

  • htaについて。親画面子画面を認識したい

    現在ローカルPC内で本番環境をさわる前のシュミレーション用にhtaを使って擬似環境を作っています。 htaで親画面子画面での値の受渡しやopenerを使って親画面を最前面に表示をしたいと思います。 以下のhtmlだとうまく値を受渡し後、親画面を最前面に表示できたのですがhtaにhtmlを切り替えて 同じように動かそうとすると以下のエラーがでました。 [window.opener.frm1はNullまたはオブジェクトではありません。] ネットで調べてみましたがhtaでopenerを使う方法などがうまく見つかりません。 どなたかご教授願います。宜しくお願いいたします。 *テストした内容 --親window(test1.html)-- <HTML> <HEAD> <META HTTP-EQUIV="Content-Language"CONETNT="ja"> <META HTTP-EQUIV="Content-Type"CONTENT="text/html;CHARSET=shift_jis"> <TITLE><練習用>エリア応対支援</TITLE> <Script Language="JavaScript"> resizeTo(400,400); function wopen4(){ window.open('test2.html','_blank'); } </SCRIPT> </HEAD> <BODY> <FORM name="frm1"> <input type ="button" onClick="wopen4()" value="子オープン"><br> <input ="text" NAME="text1"> </FORM> </BODY> </HTML> --子window(test2.html)-- <HTML> <HEAD> <META HTTP-EQUIV="Content-Language"CONETNT="ja"> <META HTTP-EQUIV="Content-Type"CONTENT="text/html;CHARSET=shift_jis"> <TITLE>子ウィンドウ</TITLE> <Script Language="JavaScript"> resizeTo(300,400); function w_od(){ window.opener.frm1.text1.value=frm2.text2.value; } function w4cus(){ window.opener.focus(); } </SCRIPT> </HEAD> <BODY> <FORM name="frm2"> <input ="text" class="inset2" NAME="text2"> <input type="button" class="outset4" onclick="w_od();w4cus()" value="設定" > </FORM> </BODY> </HTML>

    • ベストアンサー
    • HTML

専門家に質問してみよう