Friday, May 17, 2024
-3
rated 0 times [  1] [ 4]  / answers: 1 / hits: 68106  / 14 Years ago, tue, april 27, 2010, 12:00:00

I need to know if the user is currently viewing a tab or not in Google Chrome. I tried to use the events blur and focus binded to the window, but only the blur seems to be working correctly.



window.addEventListener('focus', function() {
document.title = 'focused';
});

window.addEventListener('blur', function() {
document.title = 'not focused';
});


The focus event works weird, only sometimes. If I switch to another tab and back, focus event won't activate. But if I click on the address bar and then back on the page, it will. Or if I switch to another program and then back to Chrome it will activate if the tab is currently focused.


More From » google-chrome

 Answers
4

2015 update: The new HTML5 way with visibility API (taken from Blowsie's comment):



document.addEventListener('visibilitychange', function(){
document.title = document.hidden; // change tab text for demo
})





The code the original poster gives (in the question) now works, as of 2011:



window.addEventListener('focus', function() {
document.title = 'focused';
});

window.addEventListener('blur', function() {
document.title = 'not focused';
});


edit: As of a few months later in Chrome 14, this will still work, but the user must have interacted with the page by clicking anywhere in the window at least once. Merely scrolling and such is insufficient to make this work. Doing window.focus() does not make this work automatically either. If anyone knows of a workaround, please mention.


[#96952] Sunday, April 25, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
pariss

Total Points: 255
Total Questions: 99
Total Answers: 117

Location: Hungary
Member since Wed, Nov 9, 2022
2 Years ago
;