

プルダウン（selectタグ）に対して `b` を取得していますので `b = SELECT` となって欲しいものの、どういうわけか `b = BODY`
となってしまう場合があります。

以下ページで `activeElement` の仕様を確認すると次のような記載がありました。

[Document.activeElement - Web API |
MDN](https://developer.mozilla.org/ja/docs/Web/API/Document/activeElement)

> どの要素にフォーカスが当たるかは、プラットフォームやブラウザーの現在の設定によって異なります。例えば、 macOS
> システムでは通常、既定では、テキスト入力要素以外の要素はフォーカスされません。

macOSは使用しておらず、WindowsとChromeの環境で `b = BODY` が発生するのですが原因分かる方いらっしゃいますでしょうか。

[code]

    var a = document.activeElement;
    var b = a.tagName.toUpperCase();
    
[/code]


CC BY-SA 4.0
2022-07-19T09:10:06.833
90084
2022-07-20T13:29:36.690
2022-07-20T01:04:47.977
3060
53597
question
javascript html
tagnameで取得した要素がSELECTではなくBODYになる


質問文からよく読み取れないのですが、もしかして **focus** （フォーカス）と **select** （選択）を混同していたりしませんか？  
例えば `Tab`キーを押してフォーカスを移動した場合にどこに飛びますか？ `Shift + Tab` で`<select>`要素に戻りますか？ `↑`キー
`↓`キーでプルダウンの選択内容は更新されますか？ そうでなく画面がスクロールしたりしませんか？

  * [`HTMLElement.focus()`](https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/focus)
  * [`<select>`: HTML 選択要素](https://developer.mozilla.org/ja/docs/Web/HTML/Element/select)

などのページでフォーカスの挙動について確認してみてはいかがでしょうか？


CC BY-SA 4.0
2022-07-20T13:29:36.690
90115
2022-07-20T13:29:36.690
4236
90084
answer