Вопрос по 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, время: 11:50. |