Я должен знать, просматривает ли пользователь в настоящее время вкладку или не в Google Chrome. Я пытался использовать размытость событий и фокус, связанный с окном, но только размытость, кажется, работает правильно.
window.addEventListener('focus', function() {
document.title = 'focused';
});
window.addEventListener('blur', function() {
document.title = 'not focused';
});
Странные работы события фокуса, только иногда. Если я переключусь на другую вкладку и назад, то событие фокуса не активируется. Но если я нажму на строку поиска и затем обратно на странице, то она будет. Или если я переключаюсь на другую программу, и затем обратно на Chrome она активируется, если вкладка будет в настоящее время фокусироваться.
В конце концов, это может сработать, мне стало любопытно, и я написал этот код:
...
setInterval ( updateSize, 500 );
function updateSize(){
if(window.outerHeight == window.innerHeight){
document.title = 'not focused';
} else {
document.title = 'focused';
}
document.getElementById("arthur").innerHTML = window.outerHeight + " - " + window.innerHeight;
}
...
<div id="arthur">
dent
</div>
Этот код делает именно то, что вы хотите, но некрасиво. Дело в том, что Chrome, кажется, время от времени игнорирует изменение заголовка (при переключении на вкладку и удерживании мыши в течение 1 секунды, похоже, всегда создается этот эффект).
На экране будут отображаться разные значения, но заголовок не изменится.
вывод: Что бы вы ни делали, при тестировании не доверяйте результату!