document.hasFocus() всегда возвращает false при вызове в обратном вызове onvisibilitychange
Кажется, что всегда возвращает false в контексте обратного вызова прослушивателя событий. Я знаю, что могу использовать
document.hidden
но я бы предпочел использовать
hasFocus()
поскольку это немного более узко, когда это правда.
document.addEventListener('visibilitychange', function() {
console.log(document.hasFocus()) // always false
console.log(document.hidden) // "more correct"
});
Мне больше интересно, почему это так. Это потому, что всякий раз, когда вызывается, на самом деле неверно, так как
document
должно быть в центре внимания, но этого никогда не произойдет до того, как вам позвонят?
Пример 1, мы переключаемся с tabA на tabB -> установлен на
false
а затем запускается. Пример 2, мы переключаемся обратно с tabB на tabA ->
visibilitychange
запускается, по-прежнему является ложным, поскольку мы технически не сосредоточены на документе, поэтому он возвращает false? Только когда мы щелкнем мышью по документу,
document.hasFocus()
будь настоящим?