• 締切済み

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

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