どの HTML 要素がフォーカスを受け取ることができますか? 質問する

どの HTML 要素がフォーカスを受け取ることができますか? 質問する

focus()フォーカスを取得できる HTML 要素の明確なリスト、つまり、が呼び出されたときにどの要素がフォーカスされるかを探しています。

私は、フォーカスできる要素に対して機能する jQuery 拡張機能を作成しています。この質問への回答によって、ターゲットとする要素を具体的に指定できるようになることを願っています。

ベストアンサー1

明確なリストはありません。ブラウザ次第です。私たちが持っている唯一の標準はDOM レベル 2 HTMLfocus()によれば、メソッドを持つ要素はHTMLInputElement、、、およびのみです。これにより、およびが省略されることが顕著にHTMLSelectElementなります。HTMLTextAreaElementHTMLAnchorElementHTMLButtonElementHTMLAreaElement

今日のブラウザはfocus()HTMLElement を定義しますが、要素は次のいずれかでない限り実際にフォーカスを取得しません。

  • href 付きの HTMLAnchorElement/HTMLAreaElement
  • HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLButtonElement ではそうではありませんdisabled(IE では実際に試すとエラーが発生します)。また、ファイルのアップロードはセキュリティ上の理由から通常とは異なる動作をします。
  • HTMLIFrameElement (ただし、これにフォーカスを当てても何も役に立ちません)。その他の埋め込み要素も同様ですが、すべてをテストしたわけではありません。
  • 要素がtabindex

ブラウザによっては、この動作に他の微妙な例外や追加がある可能性があります。

おすすめ記事