How to refresh page after focus?

拟墨画扇 提交于 2019-12-18 12:32:53

问题


I would like to refresh a page after it got back into the focus. For the refreshing part I thought I might just use:

location.reload();

The tricky part is how do I determine when to refresh?
First the window has to loose the focus (which could be determined through .blur() I assume).
Only after the window which lost focus gets back into focus should trigger the refresh of itself. Can I use .focus() on location? Or do I have to use something else here?

How can I combine these two cases?

What would your approach be?


回答1:


Try this:

var blurred = false;
window.onblur = function() { blurred = true; };
window.onfocus = function() { blurred && (location.reload()); };

This only reloads the page if it has been hidden

I don't recommend binding to the window focus in jQuery, the Page will reload on pretty much every user action.

Update

This heavily relies on the browser implementation of window.onfocus and window.onblur. Webkit may not support the onblur event (in my chromium it didn't) where firefox calls a blur if the page is hidden.




回答2:


In my development environment I add this snippet of JS to a page - whenever the page becomes active after becoming inactive it reloads, so for example if you type in your text editor then click back onto your browser the page will reload once without an infinite loop. It also works when chaining active tab or active window within the same browser session.

window.onblur= function() {window.onfocus= function () {location.reload(true)}};

As stated above this does depend on browser implementation but works fine in chrome.




回答3:


@Eamonn 's approach works good for chrome as mentioned by him.

For Firefox:

window.disableResetPrompt;
window.onblur= function() {window.onfocus= function () {location.reload(true)}};


来源:https://stackoverflow.com/questions/11313434/how-to-refresh-page-after-focus

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!