如何在焦点后刷新页面?
我想重新回到焦点后刷新页面。 对于我认为我可能会使用的清爽部分:
location.reload();
棘手的部分是如何确定何时刷新?
首先,窗口必须松开焦点(可以通过我假设的.blur()来确定)。
只有在失去焦点的窗口重新聚焦后才能触发自身的刷新。 我可以在位置上使用.focus()吗? 或者我必须在这里使用其他东西吗?
我如何结合这两种情况?
你的方法是什么?
试试这个:
var blurred = false; window.onblur = function() { blurred = true; }; window.onfocus = function() { blurred && (location.reload()); };
这只会在隐藏页面时重新加载页面
我不建议在jQuery中绑定窗口焦点,Page会重新加载几乎所有用户操作。
更新
这很大程度上依赖于window.onfocus和window.onblur的浏览器实现。 Webkit可能不支持onblur事件(在我的chrome中没有),如果页面被隐藏,firefox会调用模糊。
在我的开发环境中,我将这个JS片段添加到页面中 – 每当页面在变为非活动状态后变为活动状态就会重新加载,例如,如果您键入文本编辑器,然后单击返回浏览器,页面将重新加载一次而不会出现无限循环。 当在同一浏览器会话中链接活动选项卡或活动窗口时,它也可以工作。
window.onblur= function() {window.onfocus= function () {location.reload(true)}};
如上所述,这取决于浏览器的实现,但在chrome中工作正常。