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() будь настоящим?

0 ответов

Другие вопросы по тегам