2009-09-28 2 views

答えて

28

これはHTML 5の一部として提供されています。そのため、以前のバージョンではこれが欠けている可能性が高いため、優先度を下げるオプションが増えています。

あなたは好奇心旺盛であれば、構文のようなものになります:規格で

<input type="text" name="abc" value="" autofocus> 

、それが唯一のページで一度宣言する必要があります。

一方、国家の状態では、あなたはonloadイベントの中でスクリプトを使ってのみ行うことができます。

var a_focus = document.getElementById('autofocus'); 
if(a_focus) a_focus.focus(); 

役に立てば幸い:最も簡単な方法は、ページ上の一貫性のあるIDをデフォルトの要素を割り当てる(「オートフォーカス」それを呼び出す)、その後、常に好き、それを設定することです。

+2

他のものを読むためには、 'autofocus'属性がこの形式で実装されるようになりました。あるいは、' autofocus = "autofocus" –

5

TABINDEX = 0は機能しませんか?

EDIT:

申し訳ありません - 私の答えを急ぎました。 TABINDEX = 0は、ユーザーが「TAB」キーを押した場合にのみ機能します。申し訳ありません。以下は、負荷に適切にフォーカスを設定します。最新のIE、FF、Opera、Safari、& Chromeでテスト済みです。

<form> 
    <input id="first" tabindex="1" /><br/> 
    <input id="second" tabindex="2" /> 
    <script> 
document.getElementById("first").focus(); 
    </script> 
</form> 
+0

私のためには機能しません。 –

+0

スクリプトタグ内にスクリプトをインラインで書くのは良い習慣ではなく、関数内にあり、関数はイベントで呼び出さなければなりません。 – abhi

1

そしておそらく正当な理由なく、すべての事が後見で明らかです。

3

ありません。実際には誰もがfocus()を使用するのに慣れていた以外は、正当な理由はありません。 (残念ながらfocus()には、ページ全体が読み込まれてすぐにフォーカスが移動しないと欠点があります)

デフォルトのフォーカスとデフォルトの送信ボタンの両方をHTMLで表示したいのですが、興味があるようです。編集:ジョンが言ったように、このは現在HTML5 draftにあるですが、実装はまだありませんが、HTML5はまだ完成していません。我々は参照してください!

+4

私は、ユーザログインフィールドへのfocus()呼び出しを行うサイトが大好きです。通常、パスワードを入力すると、ページが最後に読み込まれ、パスワードボックスからユーザー名ボックスにフォーカスが移ります。この時点で、私の隣に座っている人は私のパスワードをユーザ名ボックスに見ます。 – brianegge

+0

確かに。フォーカスがあってフォーカスがない場合はスニッフィングの回避策がありますが、焦点が合っていれば迷惑になり、ブラウザ固有です。 'focus()'をしなければならない場合は、問題のフィールドの直後にインラインスクリプトで行うのが最善でしょう。確かにオンロードではありません。 – bobince