• ベストアンサー

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しかないのですかね・・・。

関連するQ&A

  • JavaScriptのWindow.openで!

    JavaScriptのWindow.openで! お世話になってます。 JavaScriptのWindow.openについてお聞きします。 現在JavaScriptで・・・ リンクボタン押下→ポップアップ画面表示→再度リンクボタン押下  →再度ポップアップ画面表示(ポップアップ開きなおし) ということをしたいです。 IE6,7,8で対応する必要があるのですが、IE8でうまくいきません(泣) IE8では、ポップアップ画面を別プロセスで開くみたいで、 ポップアップがどんどん増えていってしまいます。 開くポップアップは一つにしたいのですが、対策がわかりません。 何か方法はないでしょうか? どなたかご教授ください。

  • window.Openをモーダルにできますか?

    こんにちは。 表題のように、Window.Openをモーダルにしたいのです。 親フォームからサブフォームを開き、 そこでクリックで選択された値を親フォームに展開させる という処理をしたいのです。 ShowModalDialogだと、そのサブフォームで入力された値を親フォームに表示することができないのではないか・・・と思っています。 どなたかいい方法をご存知の方、 どうか教えてください。 よろしくお願いします。

  • window.openについて

    window.openを使って新しいウインドウを開きたいと思い質問させていただきます。 現在、 ---------------------------------------------------------------- <script type="text/javascript"> <!-- function w_opn() { newWin = window.open("abc.html","","width=200,height=300"); win.moveTo(0,0); } // --> </script> そして、BODY内に <a href="javascript:w_opn()">開く</a> --------------------------------------------------------------- というふうに作成しています。 この方法だと、リンク元が複数ある場合、HEAD内のJavaScriptも複数記述しないといけないと思うのですが、これをひとつのJavaScriptで制御したいのです。 どなたかご教授願えませんか?参考になるサイトのURLでも構いません。

  • window.openで

    HTML(親画面)からJavaScriptのwindow.openで400×300の別ウインドウを表示させた後、一旦親画面に戻し、新たな別ウインドウを表示させたいのですが、 1.その新たな別ウインドウにはなっているのですが、表に出てきません。 2.新たな別ウインドウを違うサイズで設定(例えば600×400)したものを表示させたいのに、400×300のウインドウサイズのままです。 以上2点の処理がわかりません。教えてください。お願いします。

  • window.close()?でエラー

    javaScriptのwindow.close()で「プログラムにコマンドを送信している時に、エラーが発生しました」と言うエラーが出てしまいます。 但し、Windowは正常にクローズされています。 親画面から子画面をオープンし、子画面のオープン後に親画面自身をクローズしている処理です。 window.opener = window; window.close(); でクローズしています。 宜しくお願いします。

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

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

  • JScript server2008 window.openについて

    JScript に関するバグ情報等が有れば教えて下さい。 具体的には Windows Web Server 2008 R1 + IE8 の環境にて window.open 操作をした場合にターゲット指定をうまく認識しない模様です。 フレーム内親ウィンドウから子ウィンドウ(別ウィンドウ)を開き、開いた子ウィンドウから親ウィンドウを操作したいのですが、新規のウィンドウを開いてしまいます。 XP + IE8、Vista + IE8では問題が発生しません。 以下に簡単なソースを記載します。 --- index.htm --- <HTML> <HEAD> <TITLE>フレーム</TITLE> </HEAD> <FRAMESET rows="50%,*" border="3" > <FRAME name="up" src="./parent.htm" frameborder="1"> <FRAME name="down" src="" frameborder="1"> </FRAMESET> </HTML> --- 親ウィンドウparent.htm --- <HTML> <HEAD> <TITLE>親ウィンドウ</TITLE> <script language="javascript"> <!-- function child_window(){ window.open("./child.htm" , "child"); } //--> </script> </HEAD> <BODY> 親ウィンドウ<BR> <input type="button" value="open" onclick="child_window();"> </BODY> </HTML> --- 子ウィンドウchild.htm --- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>子ウィンドウ</TITLE> <script language="javascript"> <!-- function parent_window(){ window.open("./parent.htm" , "up"); } //--> </script> </HEAD> <BODY> 子供だよ<BR> <input type="button" value="parent_open1" onclick="parent_window();"> </BODY> </HTML>

  • IE7でのwindow.openerがnullになる

    showModalDialogで、子ウィンドウを開き、子ウィンドウからwindow.openerの関数を呼ぼうとしています。Firefoxでは、問題なく呼べるのですが、IE7ですとwindow.openerそのものがnullになってしまいます。 回避策はあるのでしょうか? IE7のバグですかね? 親 window.showModalDialog("hoge.html", this, "スタイル"); 子 var a = window.opener.hoge(); といった形で使用しています。ちなみにこの前にalert(window.opener)を入れたら、見事にnullって表示されました。

  • window.open()使用サブウィンドウをモーダルにする方法

    struts + jspで開発を行っています。 window.open()を使用してサブウィンドウを表示する際にサブウィンドウをモーダル化したいと思っていますがうまくいきません。どうすればモーダル化出来るでしょうか?以下のパターンはなしとさせてください。 1.showModalDialogの使用  理由)submitを行った際に新規にウィンドウが開くため 2.onblurの使用

  • javascriptのwindow.open

    あるウインドウ上に配置されたリンクをクリックした際に 以下のjavascriptを使用して、1024×768のウインドウを開きたいと考えております。 <a href="javascript:window.open('example.html','mywindow1','width=1024,height=768');">テスト</a> しかしながら、一部の環境において、上記処理を実行すると、 ウインドウが最大化した状態で表示されます。 環境毎の挙動は以下のようになります。 ●意図したサイズ(1024×768)で開ける環境 (1)Win7-IE11 (2)Win7-Chrome (3)Win7-Firefox (4)Win10-Microsoft Edge ●最大化した状態(1920×934)で開いてしまう環境 (5)Win10-Microsoft Edge ※(4)と(5)はOS・ブラウザのバージョンは同じですが、 ハードウェアが異なります。 ・(4)はデスクトップPCで、画面解像度は1600×1200 ・(5)はノートPCで、画面解像度は1920×1080 ※上記の検証は同一のWebサーバ同一のプログラムに対して実施しております。 なぜ(4)と(5)で挙動が異なるのか分かりません。 window.openの挙動はハードウェアやドライバによって 変わってくるものなのでしょうか? 何か心当たりがありましたら、 ご教示の程、よろしくお願いいたします。

専門家に質問してみよう