如何在焦点后刷新页面?

时间:2012-07-03 14:46:20

标签: javascript jquery

我想重新回到焦点后刷新页面。对于令人耳目一新的部分,我想我可能只会使用:

location.reload();

棘手的部分是如何确定何时刷新?
首先,窗口必须松开焦点(可以通过 .blur()确定)。
只有在失去焦点的窗口重新聚焦后才能触发自身的刷新。我可以在位置使用 .focus()吗?或者我必须在这里使用别的东西吗?

如何将这两种情况合并?

你的方法是什么?

3 个答案:

答案 0 :(得分:16)

试试这个:

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

只有在隐藏了页面时才会重新加载页面

我不建议在jQuery中绑定窗口焦点,Page会重新加载几乎所有用户操作。

<强>更新

这很大程度上依赖于window.onfocus和window.onblur的浏览器实现。 Webkit可能不支持onblur事件(在我的chrome中没有),如果页面被隐藏,firefox会调用模糊的颜色。

答案 1 :(得分:11)

在我的开发环境中,我将这个JS片段添加到页面中 - 每当页面在变为非活动状态后变为活动状态它会重新加载,例如,如果您键入文本编辑器然后单击返回浏览器,页面将重新加载一次无限循环。当在同一浏览器会话中链接活动选项卡或活动窗口时,它也可以工作。

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

如上所述,这取决于浏览器的实现,但在chrome中工作正常。

答案 2 :(得分:0)

@Eamonn的方法对他所说的铬很有效。

对于Firefox:

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