IE の showModalDialog と初期フォーカス

IE の showModalDialog で開いたウィンドウは、 先頭のリンクやフォームに、 自動的にフォーカスがセットされてしまいます。

ページが読み込まれたときに 下のようになります。

WRITE_0775_01

この状態で [Enter]キーを押すと、 当然このリンクをクリックしたことになってしまいます。 また、JavaScript で

window.scrollTo(0, xx);

のようなスクロール操作を行っても フォーカスがセットされたオブジェクトが 隠れるようなスクロールはさせてくれません。

対処方法の 1つとして、 次のように showModalDialog で開いたウィンドウの onload イベントで、 ウィンドウ全体にフォーカスを当て直します。

  <script>
      if (window.attachEvent) {
          window.attachEvent("onload", function() {
                  window.focus();
              });
      }
  </script>
</body>
</html>

IE 用の対策なので window.attachEvent を使用しています。


        

WRITE_0775_02

これで、フォーカスが解除されます。

Google サイト内検索

Amazonアソシエイト