Google Reader has a nice feature that when you switch to the w开发者_运维问答eb page from a different web page (giving the page focus) it will show you the updates there were accumulated while the page was unfocused.
Quick question #1: How do they do that?I figure that they might be binding to the mouse move events + keyboard events since I don't know any out of the box event that gives you that ability.
Googling for that is a nightmare (focus, tab, web page, user).
Quick question #2: Is there some package out there that gives me that ability?
I'm putting the jQuery tag as a beacon for all the web developers ninjas out there, but I don't really care about the framework (as long as its Javascript)
Try using jQuery's focus
and blur
functions:
$(window).focus(function() {
console.log('welcome (back)');
});
$(window).blur(function() {
console.log('bye bye');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Click in and out of this frame to test the focus and blur functions.
I tested in FF and document.onfocus
is called when I switch to that window.
Use focusin
(focus) and focusout
(blur) on the document
object:
$(document).bind('focus', function() {
console.log('welcome (back)');
}).bind('blur', function() {
console.log('bye bye');
});
The opposite of focus is blur.
document.addEventListener("focus", function(){
console.log("Page in focus")
})
document.addEventListener("blur", function(){
console.log("Page out of focus")
})
There's a difference between the focus/blur events discussed by other answers, and the actual Visibility API. The best resource for this is the docs at MDN: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
精彩评论