- 締切済み
開いたタブ(ウィンドウ)にフォーカスが当たらない
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> ---------------------------------------------------
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- gorusura
- ベストアンサー率59% (25/42)
TestWin.document.focus(); を TestWin.focus(); に変えてみても上手くいきませんか。 正式な方法がダメなら、 >button のクリックイベントで表示した場合は これを裏でこっそりやってしまえば良いのではないでしょうか。 DOCTYPE宣言がないのも少し気になります。 JavaScriptにも影響がありますので。
お礼
回答ありがとうございます。 TestWin.focus(); に変えてもうまくいきませんでした。 button のクリックイベントを実行してしまう方法も、onload で行うとうまくいきません。 onload の中で setTimeout を使ってやってもうまくいきませんでした。 onload の中だとなにをやっても今のところうまくいきません。 DOCTYPE宣言も記述した場合、しない場合で何度か試しましたが変わりありませんでした。