- ベストアンサー
window.openの件について
いつもお世話になります。 開発で困っているわけでもないのですが、1つ質問をさせてください。 OS:WinXP、IE:6.0、javascriptの環境でwindow.openを使用した時、window.showModalDialogみたいに子画面を閉じない限り、親画面の制御を不可にすることはできるのでしょうか?
- みんなの回答 (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> 一応解説すると親ウィンドウにフォーカスが移った時、子ウィンドウが開いていたら子ウィンドウにフォーカスを当てるようにしてみました。 たぶんこんなんでいいと思いますが、相変わらずたいしてテストしてないので実際に使ってみてください。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
私もできないと思います。
お礼
ご回答、誠にありがとうございます。 おっしゃる通り単純にwindow.openではできないみたいですね。 ありがとうございました。
- ttyp03
- ベストアンサー率28% (277/960)
詳しく調べたわけではないですが window.open ではできないみたいですね。 その代わり代替方法を考えてみました。 window.open で開く画面の方でフォーカスを失ったらフォーカスを当てるという処理をすれば似たような感じにはできました。 <html> <script> function onBlur() { window.focus(); } </script> <body onBlur="onBlur();"> : : </body> </html>
お礼
早速のご回答、誠にありがとうございました。 上記の例でこちらでもためさせていただきました。 確かに似たような動きにはなりますが、例えば子画面をあげている状態で別画面(エクスプローラ等)の画面を表示し、今度親画面を選択すると親画面のみが表示され子画面が隠れる状態になりました(涙)。 やはり親画面を完全に制御させるにはwindow.showModalDialogしかないのですかね・・・。
お礼
たびたびのご回答、誠にありがとうございます。 上記の内容を参考にさせていただきます。 ありがとうございました。