• 締切済み

親→子→孫サブウィンドウのフォーカスの仕方

すいません。教えてください。 1.親ページから子サブウィンドウを開いて、そのサブウィンドウは常に手前に表示したい。 2.さらに子サブウィンドウから孫サブウィンドウを開く。子ウィンドウは残したまま。 3.今度は孫ウィンドウが常に手前に表示される。 ということをやりたいのです。 実際にfocusでやってみると、子と孫ウィンドウが競合をおこして、どちらも前に出ようと交互に上に出てフラッシュ状態となってしまいます。 どなたか解決策はありませんでしょうか?

みんなの回答

  • osumitan
  • ベストアンサー率33% (102/307)
回答No.2

孫を開いたときも、子がfocusを取ろうとするとは、 子にfosusを与える処理はどのタイミングでやっているんですか? 子も孫も、自分が開いたときに自分にfocusを当てれば それでいいように思います。 (onLoad="window.focus();"とか)

  • Caldron
  • ベストアンサー率100% (4/4)
回答No.1

子ウィンドウや孫ウィンドウを手前に出すのにblurを使っているのでしょうか? であれば子ウィンドウから孫ウィンドウを出す際に 子ウィンドウのblurが走らないように制御すればいかがでしょう? でも、孫ウィンドウが生きてるかどうか判断しなければいけないかもしれませんね。

関連するQ&A

  • サブウィンドウを複数表示できないようにしたいのですが

    現在、親ウィンドウでボタンが押されたらwindow.openで サブウィンドウを表示していますが、サブウィンドウを最小化したり 親ウィンドウにフォーカスが移ったときに親ウィンドウのボタンが 押されたら再びサブウィンドウが開いてしまいます。 再び開かないようにするにはどうしたらいいのでしょうか 常にサブウィンドウを前画面にする(<body onBlur="focus()">)方法は わかったのですがこれではフォーカスが移れません。 フォーカスは移れるようにしたいのですが よろしくお願いします。

  • サブウィンドウがリロードされたとき、手前に表示したい

    <a href= "a1.htm"onClick="window.open 'a1.htm','new','width=600,height=500,scrollbars=1,resizable=1'); return false;"> でサブウィンドウを開いています。 開いた状態で、また親ウィンドウから、別の(a2.htm)ファイルを開きます。同じサブウィンドウで表示されるのですが、親ウィンドウが手前でサブウィンドウが変わったのがわかりません。 サブウィンドウのファイルが変わったときに、 親ウィンドウの手前に表示させることは可能でしょうか?

  • フォーカスが親ウインドウから子ウィンドウに移る際のイベントは?

    フォーカスが子ウィンドウに移ったとき、もしイベントが発生すれば、それを子ウィンドウのスクリプトでonXXXX とやって、活用し、たとえば子ウィンドウ上に置いたfocus on/off のボタン表示に反映したいのです。そんなイベントはありますか?  あるいは、子ウィンドウからフォーカスが離れるときに、あとで再びフォーカスが子ウィンドウに戻って来るときに備えて、ボタンをon にしておく方法もありますが、こちらの手でいくためには、フォーカスが離れる際のイベントがどうも onBlur() ではうまくいきません。 どうかよろしくお願い致します。

  • Dreamweaverでサブウィンドウが

    たびたびお世話になっております。 Dreamweaverでビヘイビアでサブウィンドウが開くというものを作っているのですが、 ウィンドウサイズを幅300にするとして、300の幅のテーブルに画像を配置したファイルを作って それを開くようにして見ると、 サブウィンドウが300で開いてはいるのですが、 画像が右にずれて表示されてしまいます。 つまり、表示したい画像サイズぴったりではなく、左がすこし(10ポイントぐらい?)余白が入って全体が右にずれている状態になってしまうのですが、 これはどうしてでしょうか? 余白が入らずぴったりに表示させることはできないのでしょうか。 開くほうはテーブル100%で入れ子にしてセンター配置にしています。 解決策がありましたら教えてください。

    • ベストアンサー
    • HTML
  • サブウィンドウの画面制御について

    過去スレを確認しましたが、同じようない内容のモノがなかったため質問させて頂きます。 サブウィンドウ画面の制御についての質問なのですが、 親→子→孫といったように3画面同時に表示する場合があります。 この時、親を閉じると子と孫も、子を閉じると孫も同時に閉じたいと思っています。 しかし親から子、子から孫といったように一階層だと閉じることができますが、 親から孫と二階層になると閉じる事ができません。 どなたか解決方法をご存知の方がおられましたら、 ご教授頂けますでしょうか。 よろしくお願いします。 実装内容は以下のようになっています。 (必要部分以外は省略しています) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ----------------子画面用JavaScript-------------------- ◆子を開く function openWin1(){ subWin1 = window.open(url,"subWin1",""); } ◆子を閉じる function closeWin1(){ if(typeof(subWin1) != 'undefined') { // 子ウィンドウを閉じる subWin1.close(); } // 孫ウィンドウを閉じる closeWin2(); } ----------------------------------------------------- ---------------孫画面用JavaScript-------------------- ◆孫を開く function openWin2(){ subWin2 = window.open(url,"subWin2",""); } ◆孫を閉じる function closeWin2(){ if(typeof(subWin2) != 'undefined') { // 孫ウィンドウを閉じる subWin2.close(); } } ----------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 縦に長い親ウィンドウの下の方からサブウィンドウを開いても、親ウィンドウの表示内容の位置が変わらないようにしたい!

    onClick="MM_openBrWindow('price.html','','scrollbars=yes,width=620,height=620')" 上記のようにprice.htmlをサブウィンドウとして開いているのですが、縦に長い親ウィンドウページの下の方にサブウィンドウを開くボタンを置くとクリックしたときに、親ウィンドウページの表示部分が下の方から一気に一番上になってしまいます。(Windows XP SP2, IE 6.0) 親ウィンドウはサブウィンドウを開くときに見ていたままにしておきたいのですが、どうしたらよいでしょうか? とほほさんのページなど読みましたが、わかりませんで、大変困っております。 (javascriptもDreamWeaverMX2004のビヘイビアで設定しているような者なので・・・) どなたが教えていただけるとありがたいです。 なにとぞよろしくお願いいたします。

  • 孫ウィンドウから親ウィンドウを操作

    javascriptを使用して以下の物を作りたいと考えています。 1.親ウィンドウから子ウィンドウを開く 2.子ウィンドウから孫ウィンドウを開き、自動的に子ウィンドウを閉じる 3.孫ウィンドウから親ウィンドウのページを切り替え、自動的に孫ウィンドウを閉じる 2までは出来たのですが、3は子ウィンドウを閉じてしまう為にopenerが使えません。 他の方法も調べてみたのですが、どうしてもうまくいきませんでした。 何か良い方法はないでしょうか?

  • 開いたタブ(ウィンドウ)にフォーカスが当たらない

    IE8 をタブモードで利用したとき、新しく開いた タブ(ウィンドウ)にフォーカスが当たりません。 JavaScript の window.open で別タブ(ウィンドウ)を 表示する処理を onload イベントで行うと、新しい タブ(ウィンドウ)にフォーカスがあたりません。 button のクリックイベントで表示した場合は、 新しいタブ(ウィンドウ)にフォーカスが当たります。 やりたいことは submit してページを再表示するときに 新しいタブ(ウィンドウ)を表示して、そちらにフォー カスを設定することです。 また、できればブラウザのバージョンによって処理を 切り替えるようなことはしたくありません。 何か原因や解決策などありましたらご教授ください。 よろしくお願いします。 <この現象が発生する環境> IE8 と IE7 で下記のように設定した場合 ツール → インターネットオプション → 全般タブ  → タブ → 設定  → ポップアップの発生時  の設定を   「常に新しいタブでポップアップを開く」  にする。 ※IE9 ではこの現象は発生せず、新しいタブ(ウィンドウ)に  フォーカスがあたります。 ※IE7, 8 でもタブモードではなく、別ウィンドウで開く  設定になっている場合は、新しいウィンドウにフォーカスが  あたります。 <サンプルソースと説明> (説明) test1.html から window.open で test2.html を表示します。 onload で表示したときは test2.html のタブ(ウィンドウ)に フォーカスがあたりません。 button のクリックイベントで表示したときは test2.html の タブ(ウィンドウ)にフォーカスがあたります。 ---(test1.html)---------------------------------- <html> <head runat="server"> <title></title> <script language="javascript" type="text/javascript"> window.onload = function () { OpenWindowTest(); } function OpenWindowTest() { var TestWin = window.open('test2.html'); TestWin.document.focus(); } </script> </head> <body> <form> <div> <input type="button" value="button" onclick="OpenWindowTest();" /> <br /> <input type="submit" value="submit" /> </div> </form> </body> </html> --------------------------------------------------- ---(test2.html)---------------------------------- <html> <body onload="window.focus();"> テストページ </body> </html> ---------------------------------------------------

  • 親、子、孫のウインドウを同時に表示するのは?

    親と子のウンドウを同時に開くのは 親のファイルに以下のように書けば <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--// function openWindow() { window.open("","windowname"); } //--> </SCRIPT> </HEAD> <BODY> <A HREF="ko.html" onClick=openWindow() TARGET="windowname">子ウインドウ</A> </BODY> 出来るんですが、子のファイルに同じように書くと 子のウインドウが孫に変わってしまいます。 親、子、孫を同時に表示するのには、どうすればよいか、よろしくお願いします。

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

専門家に質問してみよう