javascript - 重新加载页面焦点
问题描述
我有一个 Progressive Web App,每次用户打开它时都需要刷新它。
为了实现这一点,我尝试过:
1) First Option
window.onblur = function() {
window.onfocus= function () {
window.location = self.location;
}
};
2) Second Option
var blurred = false;
window.onblur = function() {
blurred = true;
};
window.onfocus = function() {
blurred && (window.location = self.location);
};
选项 1 的学分:https ://stackoverflow.com/a/16406350/11843328
选项 2 的学分:https ://stackoverflow.com/a/11313719/11843328
这很好用,但问题是有时当你点击某些东西时,它会再次重新加载。它基本上会通过一些动作连续重新加载 4 次。其他时候它按预期工作,只是重新加载一次,但大多数时候是连续 4 或 5 次。
我需要它在打开(焦点)时重新加载一次。是否有任何替代方案我可以尝试或任何建议将不胜感激!
解决方案
确保您使用的是window
焦点事件。正如其他人指出的那样,没有必要使用该blur
事件,因为focus
只有在窗口焦点模糊时才会触发。
您也可以使用该window.location.reload
方法重新加载窗口。
window.addEventListener("focus", e => window.location.reload());
<p>Look for a flicker</p>
推荐阅读
- go - Kafka 消费者(Kerberos 身份验证)Golang
- ios - 我们可以在 swift 函数中拥有多个可变参数吗?
- google-apps-script - Google Sheet/App Script - 甘特图:在当前日期移动固定行
- json - ajax 成功函数失败(json undefined token 错误)
- android - ConstraintLayout - 约束到最近的 View
- math - 我使用什么缩放器来预测间隔?
- python - django-allauth process='connect/login' 的区别
- json - 为 S3 前缀创建 AWS CloudWatch 事件规则
- java - 尝试使用 Apache Tika 和 XPath 获取属性值
- google-apps-script - 更改列的日期格式并检查它是否与昨天的日期匹配