• ベストアンサー

window.openの件について

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

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

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.3

#1です。 少し修正してみました。 今回は親ウィンドウに処理を入れてみました。 子ウィンドウのプログラムは#1のままで。 ■親ウィンドウ <html> <script> var w = null; function winopen() {  w = window.open( "child.htm", "test" ); } function onFocus() {  if( w == null ) return;  if( !w.closed ) w.focus(); } </script> <body onFocus="onFocus();"> <input type="button" value="click" onClick="winopen();"> </body> </html> 一応解説すると親ウィンドウにフォーカスが移った時、子ウィンドウが開いていたら子ウィンドウにフォーカスを当てるようにしてみました。 たぶんこんなんでいいと思いますが、相変わらずたいしてテストしてないので実際に使ってみてください。

inoki_koko
質問者

お礼

たびたびのご回答、誠にありがとうございます。 上記の内容を参考にさせていただきます。 ありがとうございました。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

私もできないと思います。

inoki_koko
質問者

お礼

ご回答、誠にありがとうございます。 おっしゃる通り単純にwindow.openではできないみたいですね。 ありがとうございました。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

詳しく調べたわけではないですが window.open ではできないみたいですね。 その代わり代替方法を考えてみました。 window.open で開く画面の方でフォーカスを失ったらフォーカスを当てるという処理をすれば似たような感じにはできました。 <html> <script> function onBlur() {  window.focus(); } </script> <body onBlur="onBlur();">  :  : </body> </html>

inoki_koko
質問者

お礼

早速のご回答、誠にありがとうございました。 上記の例でこちらでもためさせていただきました。 確かに似たような動きにはなりますが、例えば子画面をあげている状態で別画面(エクスプローラ等)の画面を表示し、今度親画面を選択すると親画面のみが表示され子画面が隠れる状態になりました(涙)。 やはり親画面を完全に制御させるにはwindow.showModalDialogしかないのですかね・・・。