我想重新回到焦点后刷新页面。对于令人耳目一新的部分,我想我可能只会使用:
location.reload();
棘手的部分是如何确定何时刷新?
首先,窗口必须松开焦点(可以通过 .blur()确定)。
只有在失去焦点的窗口重新聚焦后才能触发自身的刷新。我可以在位置使用 .focus()吗?或者我必须在这里使用别的东西吗?
如何将这两种情况合并?
你的方法是什么?
答案 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)}};