テキスト入力にautofocus
属性を与えます。完璧ではありませんが、かなり優れたブラウザーサポートを備えています。この機能はかなり簡単にポリフィルできます。以下に例を書いてみましょう。これをドキュメントの一番下に配置するだけで (実行時に要素が既に存在するように)、要素が検出されautofocus
(注: は1 つだけである必要があります。そうしないと、一貫性のない結果が得られる可能性があります)、それにフォーカスを当てます。 .
(function () {
// Proceed only if new inputs don't have the autofocus property
if ( document.createElement("input").autofocus === undefined ) {
// Get a reference to all forms, and an index variable
var forms = document.forms, fIndex = -1;
// Begin cycling over all forms in the document
formloop: while ( ++fIndex < forms.length ) {
// Get a reference to all elements in form, and an index variable
var elements = forms[ fIndex ].elements, eIndex = -1;
// Begin cycling over all elements in collection
while ( ++eIndex < elements.length ) {
// Check for the autofocus attribute
if ( elements[ eIndex ].attributes["autofocus"] ) {
// If found, trigger focus
elements[ eIndex ].focus();
// Break out of outer loop
break formloop;
}
}
}
}
}());
いくつかの初期テストの後、これは Internet Explorer 6、Firefox 3 などにまでさかのぼってサポートを提供するようです。
選択したブラウザーでテストします: http://jsfiddle.net/jonathansampson/qZHxv/show