- ベストアンサー
tabキーによるfocusの当たり方を制御したい
こんにちは,よろしくお願いします。 formが設置してあるページで,tabキーを押すとfocusが移動しますが,この挙動が,ブラウザによって違うことに気づきました。 ドリームウィーバーで,レコードの挿入ウィザードを使って簡単にフォームを設置することができますが,たとえば,この単純なページをInternet Explorerで開いて,1回tabキーを押してみると,focusは,ブラウザのアドレスバーに行ってしまいます。しかし,Firefoxでは,フォームの1番目のテキストボックスにfocusが当てられ一番最後にブラウザのアドレスバーなどに行きます。また,OperaではFirefoxと同様にフォームの1番目のテキストから始まって,ブラウザにはfocusが渡りません。 FirefoxやOperaのようにフォームの1番目の項目からfocusがあたるようにしたいのですが,どのようにすればよいのでしょうか? gooやYahooを上記の3つのブラウザで開いてみると,必ず同じ挙動を示して,同じところからfocusが当たりますから,何らかの方法で制御する方法があるのだと思うのですが…。 tabindexを設定して,フォームの1番目の項目を1として,順に設定してみたりしたのですが,Internet Explorerでは,やはり一番先にブラウザにfocusが渡ってしまいました。 私の希望としては,Opera のように一切ブラウザにfocusが当たらないようにしたいのです。しかし,できないのであれば,Internet Explorerで一番最初にブラウザにfocusが当たらないようにする方法を教えていただきたいです。 当方,JavaScriptとPHPにてホームページを作成中です。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ページ開いたときにtabindex=1のやつへフォーカスさせておくとか・・・ window.onload = function() { document.getElementById('フォーカス先のID名').focus(); }
その他の回答 (1)
- gityotan
- ベストアンサー率53% (23/43)
ソースで指定することは可能なはずです。 ブラウザがうまく動いてくれるかどうかまでは分かりません。
- 参考URL:
- http://www.google.co.jp/search?hl=ja&q=html+tabindex&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
お礼
gityotanさん,ありがとうございました。 またよろしくお願いします。
お礼
tenderfeelさん,ありがとうございました。 おっしゃる通りにしたらできました。 実は私は,1番目のテキストボックスに,初期値としてvalue="入力してください"としていたので,onloadイベントにfocus();ではなく,select();を設定しておりました。それで,tabキーを押したときブラウザからfucusが当たったのだとわかりました。 そこで, document.getElementById('フォーカス先のID名').focus(); document.getElementById('フォーカス先のID名').select(); としたら,うまくいきました。ありがとうございました。