0

イベントリスナーのコールバックdocument.hasFocus()のコンテキストでは、常に false を返すようです。visibilitychange使用できることは知っていますが、本当の場合はもう少し狭いので、document.hidden使用したいと思います。hasFocus()

document.addEventListener('visibilitychange', function() {
    console.log(document.hasFocus()) // always false
    console.log(document.hidden) // "more correct"
});

どうしてこうなったのか、もっと気になります。visibilitychangeそれは、実際に呼び出されるたびに焦点を合わせる必要がdocument.hasFocus()あるため、実際には真実ではないためですが、呼び出されるdocument前にそれが起こることはありませんvisibilitychangeか?

例 1、tabA から tabB に切り替えます ->document.hasFocus()に設定してからfalse実行visibilitychangeします。例 2、tabB から tabA に切り替えます ->visibilitychange実行document.hasFocus()されますが、ドキュメントに技術的に焦点を当てていないため、まだ false であり、したがって false を返していますか? ドキュメントをマウスでクリックしたときだけdocument.hasFocus()true になりますか?

4

0 に答える 0