Вопрос по onVisibilityChange
Привет.
const onVisibilityChange = () => { if (document.visibilityState === 'visible'){ console.log('active') }else{ console.log('hiden') } } document.addEventListener('visibilitychange', onVisibilityChange); Почему при перезагрузки страницы она в состоянии 'hiden'? И можно ли как то это поправить? |
Цитата:
Даже вопрос "Почему небо синее" звучит более научно. :) Ответ будет такой - это так работает. Цитата:
|
Возможно для такого просвещённого как вы, вопрос действительно странный, но я не вижу в этом странности). Рассуждая логически, если страница видна, то должен быть не hiden. Отсюда был и вопрос. Но видимо в программировании не всегда работает логика))). Тогда с другой стороны. Можно ли заставить работать это событие только после окончания перезагрузки? Что то типа этого
const pageAccessedByReload = ( (window.performance.navigation && window.performance.navigation.type === 1) || window.performance .getEntriesByType('navigation') .map((nav) => nav.type) .includes('reload') ); if(pageAccessedByReload==true){ window.location.hash='reload' }else{ } document.addEventListener("DOMContentLoaded", function(event) { if(window.location.hash=='#reload'){ document.addEventListener('visibilitychange', onVisibilityChange); } }) Но так не работает) |
Для меня решение, это использовать $(window).focus() оно не реагирует на перезагрузку страницы.
|
Цитата:
|
Цитата:
|
Ааа, вот теперь понятно. Большое спасибо). Тогда почему не работает такой вариант?
document.addEventListener('visibilitychange', function() { console.log(this.visibilityState); if(this.visibilityState =='visible'){ foo(true); }else{ foo(false); } }, false); function foo(param){ if(!param)return false; console.log('true') } |
В каком смысле не работает? Чего он не делает из того, что должен бы был делать?
|
Разобрался. Спасибо).
|
Цитата:
|
Часовой пояс GMT +3, время: 19:56. |