• 締切済み

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>

みんなの回答

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.3

>回答していただいたソースをそのまま、 >実行してみると 変ですね。 document.appendChild はIE5.5で正常に機能するはずなんですが、 私のは WindowsXP+IE6Sp1 WSHのバージョンは5.6です。 全ソースは 親---- <HTML> <HEAD> <META http-equiv=Content-Type content="text/html; charset=s-jis"> <SCRIPT LANGUAGE=vbscript> <!-- dim elminput(20) 'VBの変数を直接渡せないので 'インプットタグを使用する for i=0 to 19 set elminput(i) = document.createElement("INPUT") next Sub button1_onclick elminput(1).value = "Value1" window.showModalDialog "ko.html",window End Sub Sub window_onload for i=0 to 19 document.appendChild elminput(i) next End Sub --> </SCRIPT> </HEAD> <BODY> <P>ファイトーー!( ゜ロ゜)乂(゜ロ゜ )イッパーーツ!!<BR>がんばってね。 </P> <P> <INPUT id=button1 type=button value=クリック name=button1></P> <P></P> </BODY> </HTML> 子--- <HTML> <HEAD> <TITLE></TITLE> <script language="vbScript"> dim arg(20) arg(1) = dialogArguments.elminput(1).value window.alert arg(1) </SCRIPT> </HEAD> <BODY> </BODY> </HTML> です。 >別の部分でFileSystemObjectを >利用するためHTAを利用しようと思っています。 HTAでも機能しましたよ。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.2

タイプミスしました。 子 <script language="vbScript"> dim arg(20) arg(1) = dialogArguments.elminput(1).value window.alert arg(1) </SCRIPT> です。

forllage
質問者

補足

御回答ありがとうございます。 回答していただいたソースをそのまま、実行してみると「エラー:オブジェクトでサポートされていないプロパティまたはメソッドです。:'document.appendChild'」と言われてしまいます。利用するのに何か宣言等必要なのでしょうか? ちなみに、実行環境はWinMe,IE5.50SP2です。 親子画面とも、ローカルドライブ上においてローカルアプリケーションを作成しています。 質問には影響しないと思いますが、別の部分でFileSystemObjectを利用するためHTAを利用しようと思っています。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.1

親ウィンドウで 配列タグを作成して、そのタグのValue値を使用してはどうでしょうか。 親 <SCRIPT LANGUAGE=vbscript> <!-- dim elminput(20) for i=0 to 19 set elminput(i) = document.createElement("INPUT") next Sub button1_onclick elminput(1).value = "Value1" window.showModalDialog "ko.html",window End Sub Sub window_onload for i=0 to 19 document.appendChild elminput(i) next End Sub --> </SCRIPT> 子 <script language="vbScript"> dim arg(20) arg(1) = dialogArguments.emlinput(1).value window.alert arg(1) </SCRIPT>

関連するQ&A