• 締切済み

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

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> ---------------------------------------------------

みんなの回答

  • gorusura
  • ベストアンサー率59% (25/42)
回答No.1

TestWin.document.focus(); を TestWin.focus(); に変えてみても上手くいきませんか。 正式な方法がダメなら、 >button のクリックイベントで表示した場合は これを裏でこっそりやってしまえば良いのではないでしょうか。 DOCTYPE宣言がないのも少し気になります。 JavaScriptにも影響がありますので。

oktestwev
質問者

お礼

回答ありがとうございます。 TestWin.focus(); に変えてもうまくいきませんでした。 button のクリックイベントを実行してしまう方法も、onload で行うとうまくいきません。 onload の中で setTimeout を使ってやってもうまくいきませんでした。 onload の中だとなにをやっても今のところうまくいきません。 DOCTYPE宣言も記述した場合、しない場合で何度か試しましたが変わりありませんでした。

関連するQ&A

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

    以前、ここで質問をしたものです。 まだ、解決していません。 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>

  • window.openしたウィンドウのwindow.onblurについて

    window.openしたウィンドウのonloadに  window.onblur = function() { window.close(); } を設定しているのですがFirefox3.6、Opera10.51ではウィンドウからフォーカスが外れたらウィンドウが閉じるのですが(期待している動き通り)、 IE6のみwindow.openしたウィンドウをクリックしたと同時にウィンドウが閉じてしまいます。 どうすればIEでもFirefox,Operaと同じ動きをさせることが出来ますでしょうか・・・

  • フォーカスする際のテキストフィールド名を変数で渡したい

    表のような入力フォームがあって、submitした際にあるプログラムが走り、HTML本体を再読み込みしています。 画面が表示されたときに、テキストフィールドにあらかじめフォーカスを合わせるには、以下のOnloadとfocus()を使いますよね? <body onLoad="document.Form.Field.focus()"> で、再読み込み時には、次の入力用テキストフィールドへフォーカスを合わせたいのですが、どうすればいいでしょうか? 例えば A1 A2 A3 というとき、A1を入力後、後ろでプログラムが走り、再読み込みして画面が再表示されたときに、A2にフォーカスがうつっている、という感じです。通常の書き方だとBodyにはひとつか(A1しか)かけないので・・・変数を使ったらどうかと思ってやってみましたがうまくいきません。 <SCRIPT LANGUAGE="JavaScript"> <!-- var f; f = "A1"; window.alert(f); //--> </SCRIPT> <body onLoad="document.Form.(f).focus()"> 又は <body onLoad="document.Form.var(f).focus()"> <body onLoad="document.Form.f.focus()"> フィールドにindextabをしてみましたがダメでした。又A1にonBlurが入っております。 そもそも変数なんて使えるのでしょうか? 変数以外の方法でも、他にアイディアがあればお願いします。 締切りが明日で非常にあせっています。 よろしくお願いいたします。

  • Safari3にて、新しく開いたウィンドウの入力フォームにフォーカスが合いません

    はじめまして。 javascriptでフォームにフォーカスを当てる処理として、下記のfocusTextファンクションをonloadで呼び出しています。 function focusText(){ document.getElementById("toFocus").focus(); } しかし、Safari3.2.2の場合、対象のHTMLを target="_blank" にて開いた場合にフォーカスが合ってくれません。 window.opener.blur(); を挟んでもうまく行きませんでした。 Safari4や、Interner Explorer、Google Chrome、Firefox等ではうまく行っています。 OSはWindows Vistaです。 解決策をおわかりの方、ご教授いただければ幸いです。 サンプルのソースを下記に記述します。 宜しくお願い致します。 == base.html == <html> <head></head> <body> <a href="new.html" target="_self">自身のウィンドウ</a><br> <a href="new.html" target="_blank">新しいウィンドウ</a> </body> </html> == new.html == <html> <head> <script type="text/javascript"> function focusText(){ document.getElementById("toFocus").focus(); } </script> </head> <body onload="focusText();"> <form> <input type="text" id="toFocus"> </form> </body> </html>

  • IEで別サイトをタブで開きたい

    IEで別サイトを、javascriptで常に別タブで開きたいのですが どうしても別ウインドウとなってしまいます。 window.open(url, "_blank", "scrollbars=yes,statusbar=no,resizable=yes"); を使うと <form action="xxxxx" target="_blank"> <input type="button" value="送信する" onclick="submit();"> </form> と記述したのと同様に以下のような結果となりました。 同じサイト内であれば別タブ ローカルネットワーク内であれば別ウインドウ 別サイトであれば別ウインドウ aタグで指定すれば以下のようになりました。 同じサイト内であれば別タブ ローカルネットワーク内であれば別タブ 別サイトであれば別ウインドウ  <a href="xxxx" target="_blank">aaaaaaa</a> せめてローカルネットワーク内のサイトは別タブで開きたいと思い Javascriptでボタン押下時の処理に以下のコードをいれてみましたが、動きませんでした。 jqueryを使用しています。 $('body').append('<a target="_blank" id="openSubWindowId" href="xxxxxxx"></a>'); $('#openSubWindowId').trigger("click"); 何か良い方法はないでしょうか。 IEの設定はタブで開く設定となっています。

  • 複数の別ウィンドウを同じ位置に表示するには?

    以下のような別ウィンドウを表示する関数を用意しています。 開いたウィンドウの位置を全く同じ位置に表示させたいのですが、 JavaScriptで全く同じ位置にウィンドウを表示させることは可能なのでしょうか? function test1() {   var w = window.open("/TestServlet", "win1", "");   w.focus();   return false; } function test2() {   var w = window.open("/TestServlet2", "win2", "");   w.focus();   return false; }

  • 新規ウィンドウのoption

    window.openではなく、 formのsubmit(target="_brank")で、 新規ウィンドウを開く際に、toolbar=noなどの指定をする方法はあるでしょうか? 開かれたサブウィンドウのonloadで変更ではなく、 呼び出す時点で指定しておきたいです。 内容的にJavascriptも入るかもしれませんが、、、

  • フォーカスを合わせる

    <a href="javascript:onclick_event1();" class="subMenu" tabindex="1" name="event1">イベント1</a> <a href="javascript:onclick_event2();" class="subMenu" tabindex="2">イベント2</a> ウインドオープン時に「イベント1」にフォーカスを あてたいのですが、、、 </form>前に以下の記入では駄目でしょうか? <script language="javascript"> <!-- document.fm.111.focus(); //--> </script>

  • JavaScriptで子ウィンドウからメールを送信

    javascriptで子ウィンドウからメールを送信したいです。 JSは全くの素人なので、手探りでやっています。 サーバーはCGIが使えない環境なので、何かよい方法はないでしょうか? <html> <title>sub window sample1</title> <body> <h1>Sub Window Sample1</h1> <script language="JavaScript" type="text/javascript"> function formSubmit(){ window.open("","window1","width=400","height=200"); document.getElementById("form1").target = "window1" ); } </script> <form id="form1" action="" > <input type="button" name="submit" value="mail window!" onClick="formSubmit()"> </form> </body> </html> このようなソースを途中まで書いてみましたが、子ウインドウすら開いて くれません。 ぜひご教示をよろしくお願いいたします。

  • ENTERキーを無効にしたいのですが教えて下さい

    ENTERキーを無効にしたいのですが、SUBMITボタンでjavascriptを動かしています。 SUBMITを押した瞬間に、別ウィンドウにデータを渡しているのですが、 どの部分にどのようなスクリプトを追加すれば良いでしょうか? 良かったら教えて下さい。 ■親ウィンドウのHTML <html> <head> <title>親</title> <script type="text/javascript"> <!-- window.name = (new Date()).getTime();    function make_newwin(f) {   f.target = window.name + "_ko";   var w = window.open("about:blank", f.target, "スタイル設定");   w.focus(); } //--> </script> </head> <body> <form name="test" action="/cgi-bin/test-check.cgi" method="post" onSubmit="make_newwin(this)"> <input type="submit"> </form> </body> </html>

専門家に質問してみよう