отловить событие активизации закладки браузера
От: zverjuga Беларусь  
Дата: 10.10.18 09:23
Оценка:
приветствую
есть ли способ словить событие, когда пользователь переключается на закладку браузера с моим активным сайтом? чтобы работало на всех браузерах и работало хорошо? window.onfocus здесь не подходит, так как срабатывает тогда, когда кликаешь мышкой по окну. а мне нужно, чтобы без кликов мышки.

спасибо
проклятый антисутенерский закон
Re: отловить событие активизации закладки браузера
От: Ops Россия  
Дата: 10.10.18 10:03
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>приветствую

Z>есть ли способ словить событие, когда пользователь переключается на закладку браузера с моим активным сайтом? чтобы работало на всех браузерах и работало хорошо? window.onfocus здесь не подходит, так как срабатывает тогда, когда кликаешь мышкой по окну. а мне нужно, чтобы без кликов мышки.

Z>спасибо


onfocus правильно, только еще onblur плюс флаг. Соответственно на onfocus ты будешь знать, была ли уже активна вкладка перед ним.
Ну я бы так попробовал.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: отловить событие активизации закладки браузера
От: zverjuga Беларусь  
Дата: 10.10.18 10:06
Оценка:
Здравствуйте, Ops, Вы писали:

Ops>onfocus правильно, только еще onblur плюс флаг. Соответственно на onfocus ты будешь знать, была ли уже активна вкладка перед ним.

Ops>Ну я бы так попробовал.

не очень понятно. можно развить мысль?
просто, насколько я понимаю, проблема в том, что onfocus не вызывается при активизации закладки. пока мышкой не кликнешь по окну. как тогда он может помочь?
проклятый антисутенерский закон
Re: отловить событие активизации закладки браузера
От: koenig  
Дата: 10.10.18 10:10
Оценка: 4 (1)
Z>приветствую
Z>есть ли способ словить событие, когда пользователь переключается на закладку браузера с моим активным сайтом? чтобы работало на всех браузерах и работало хорошо? window.onfocus здесь не подходит, так как срабатывает тогда, когда кликаешь мышкой по окну. а мне нужно, чтобы без кликов мышки.

https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
Re[2]: отловить событие активизации закладки браузера
От: zverjuga Беларусь  
Дата: 10.10.18 10:17
Оценка:
благодарю, будем пробовать.
а можешь по таймерам посоветовать? есть проблема, когда закладка не активная, то со временем браузер начинает сильно приостанавливать таймеры. для нас это критично, потому и хотим отловить активизацию закладки, чтобы обновить таймер. может, есть способ сделать так, чтобы таймеры работали и при неактивной закладке?
проклятый антисутенерский закон
Re[3]: отловить событие активизации закладки браузера
От: Ops Россия  
Дата: 10.10.18 10:26
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>не очень понятно. можно развить мысль?

Z>просто, насколько я понимаю, проблема в том, что onfocus не вызывается при активизации закладки. пока мышкой не кликнешь по окну. как тогда он может помочь?

А, вот как. Я думал, лишние срабатывания от мышки, сам не пробовал.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[3]: отловить событие активизации закладки браузера
От: koenig  
Дата: 10.10.18 10:29
Оценка:
Z>благодарю, будем пробовать.
Z>а можешь по таймерам посоветовать? есть проблема, когда закладка не активная, то со временем браузер начинает сильно приостанавливать таймеры. для нас это критично, потому и хотим отловить активизацию закладки, чтобы обновить таймер. может, есть способ сделать так, чтобы таймеры работали и при неактивной закладке?

так браузер же специально это делает
даже если сейчас найти возможность, они со временем её всё равно закроют
если там суперкритично, можно пропробовать подрядить под это дело звуковое апи
https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createScriptProcessor
эта штука должна одинаково работать независимо от состояния вкладки, иначе звук захлебнется
но у неё один тик — это на один раз буфер заполнить, т.е. разрешение меньше чем у таймера
Re[3]: отловить событие активизации закладки браузера
От: Mystic Artifact  
Дата: 10.10.18 18:19
Оценка:
Здравствуйте, zverjuga, Вы писали:

Некоторые многопроцессные браузеры также понижают процессу приоритет до idle. Поэтому на 100% загрузке CPU, можно очень долго ждать, не то что колбэков, а даже закрытия вкладки. Стоит проверить и это, думаю рядом идея правильная про аудио (и/или другие способы).
Re[4]: отловить событие активизации закладки браузера
От: zverjuga Беларусь  
Дата: 10.10.18 19:26
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA>Некоторые многопроцессные браузеры также понижают процессу приоритет до idle. Поэтому на 100% загрузке CPU, можно очень долго ждать, не то что колбэков, а даже закрытия вкладки. Стоит проверить и это, думаю рядом идея правильная про аудио (и/или другие способы).


идея с аудио рабочая, но не настолько мы в отчаянии, чтобы ее применять. нам достаточно в принципе просто отловить событие активации закладки и по нему обновит таймер запросом на сервер.
проклятый антисутенерский закон
Re: отловить событие активизации закладки браузера
От: Twirl Швеция  
Дата: 10.10.18 20:02
Оценка: 4 (1)
Здравствуйте, zverjuga, Вы писали:

Z>приветствую

Z>есть ли способ словить событие, когда пользователь переключается на закладку браузера с моим активным сайтом? чтобы работало на всех браузерах и работало хорошо? window.onfocus здесь не подходит, так как срабатывает тогда, когда кликаешь мышкой по окну. а мне нужно, чтобы без кликов мышки.

Z>спасибо


Не знаю какие браузеры надо поддерживать, но есть такое:

https://developer.mozilla.org/en-US/docs/Web/API/Document/hidden
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.