javascript - 当有人不在站点的屏幕上时如何重新加载窗口。但是屏幕上的窗口不应该重新加载
问题描述
我正在使用此代码重新加载窗口。我希望当有人在屏幕上时它不应该重新加载。但是如果有人不在屏幕上,它应该一次又一次地自动重新加载。
<html>
<header>
<!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.11/vue.min.js"></script> -->
</header>
<body onload="AutoRefresh(1000)">
<p id="req">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,</p>
<p>
<script src="index.js">
function AutoRefresh( t ) {
setTimeout("location.reload(true);", t);
}
</script>
</body>
</html>
解决方案
这将起作用:
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") {
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
function handleVisibilityChange() {
if (document[hidden]) {
// do something when inactive
} else {
// do something when active
}
}
document.addEventListener(visibilityChange, handleVisibilityChange, false);
推荐阅读
- java - 在引用和值语义之间切换
- jquery - 何在不更改当前页面的情况下执行操作?
- javascript - 从 NodeJS 调用的 AWS Lambda 中的空事件值
- javascript - Javascript stringify() 正在序列化使用 Jquery remove() 删除的元素
- php - 如何在 laravel 5.8 中使用批量分配上传图像?
- wpf - 为什么将 TextBlock.FontSize 转换为二进制 (BAML) 中的附加属性?
- flutter - 如何降低小部件构建成本?
- ionic4 - 如何在ionic 4中进行支付宝
- java - 意外隐式转换为字符串:布局标记是 EditText 错误
- sql-server - 从保存为 xml 格式的 nvarchar 数据类型列中导出值