- - PR -
VBScriptで子ウィンドウを閉じるときにエラーが出てしまう
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-21 16:36
いつもお世話になっております。
現在webページの作成で、親ウィンドウを閉じたら子ウィンドウを閉じるというのを実装しております。 <script language="vbscript"> <!-- Dim hdl hdl=window.open("http://yahoo.co.jp","hdl") function window_onbeforeunload() hdl.window.close() end function //--> </script> 親ウィンドウからwindow.openで開き、そのオブジェクトでwindow.close()で親ウィンドウが閉じたときに同時に子ウィンドウも閉じるようにしております。 しかし、子ウィンドウを開き親ウィンドウを閉じようとすると、「Microsoft VBScript 実行時エラー: オブジェクトがありません。: 'hdl'」というエラーが出てしまいます。 どうかご教授の方よろしくお願い致します。 [ メッセージ編集済み 編集者: すー 編集日時 2006-07-21 17:01 ] | ||||
|
投稿日時: 2006-07-21 16:57
functionがVBScriptじゃなくてJavaScriptのようですが。。。
| ||||
|
投稿日時: 2006-07-21 16:59
すみません、投稿の方書き間違えていましたので編集いたしました。 | ||||
|
投稿日時: 2006-07-21 17:00
ちなみにオブジェクトの代入はたしかSETを使うはずです。
<!-- Dim hdl Set hdl=window.open("http://yahoo.co.jp","hdl") function window_onbeforeunload() hdl.close() end function //--> | ||||
|
投稿日時: 2006-07-21 17:02
endif じゃなくてend functionですね!(落ち着いて) #と思ったらなおってるw [ メッセージ編集済み 編集者: burton999 編集日時 2006-07-21 17:03 ] | ||||
|
投稿日時: 2006-07-21 18:47
>burton999さん
ありがとうございます、先ほどのエラーは解決いたしました。 しかし、全ての子ウィンドウを閉じようと思い、下記のようなプログラムにしたところまた別のエラーが発生してしまいました。 <script language="vbscript"> <!-- Dim hdl(4) Dim i sub button1_onclick() hdl(0)=window.open("URL0","hdl0") endsub sub button2_onclick() hdl(1)=window.open("URL1","hdl1") endsub sub button3_onclick() hdl(2)=window.open("URL2","hdl2") endsub sub button4_onclick() hdl(3)=window.open("URL3","hdl3") endsub sub button5_onclick() hdl(4)=window.open("URL4","hdl4") endsub function window_onbeforeunload() for i=0 to 4 if hdl(i) <> "" then hdl(i).window.close() end if next end function //--> </script> 各ボタンを押すとwindow.openでウィンドウを開き、オブジェクトを配列hdlに入れています。window.openのURLによってif文で比較するときに「Microsoft VBScript 実行時エラー: 型が一致しません。」と出るものと出ないものがあり、非常に困っています。URLは相対パスを入れていますが、何が問題なのでしょうか? | ||||
|
投稿日時: 2006-07-21 19:22
オブジェクトを文字列と比較しているからでは。
| ||||
|
投稿日時: 2006-07-21 19:29
確かにそう思いましたが、これで比較ができエラーが出ない場合もあったので混乱しています。 |