开发者

Event when a web page gets focused

开发者 https://www.devze.com 2023-02-03 06:42 出处:网络
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 pag

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

0

精彩评论

暂无评论...
验证码 换一张
取 消