開いたタブ(ウィンドウ)にフォーカスが当たらない
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>
---------------------------------------------------
お礼
ありがとうございます。 しかしAltキーではなくTabキーを放しています。 Altキーは押したままです。