gpt4 book ai didi

javascript - pagehide 和 pageshow 事件在 ios chrome 上无法正常工作

转载 作者:可可西里 更新时间:2023-11-01 03:09:29 31 4
gpt4 key购买 nike

Apple 文档在此处列出了可用的 iOS 浏览器事件: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

“pagehide”和“pageshow”事件似乎在 safari 上运行良好,但在 chrome 上它仅适用于页面加载和卸载。它不适用于:

  1. 按下主页按钮,即将 Chrome 转到后台

  2. 切换标签页

下面是一个小的 Javascript 片段,您可以使用它来验证它:

<script type="text/javascript">
window.addEventListener("pageshow", function(evt){
alert('show');
}, false);
window.addEventListener("pagehide", function(evt){
alert('hide');
}, false);
</script>

我该怎么做才能检测 chrome 是否已发送到后台。我需要在 chrome 回到前台后立即清除 setTimeout 计时器。有什么解决方法吗?

最佳答案

下面是工作代码:

<script type="text/javascript">
var heartbeat;
var lastInterval;

function clearTimers() {
clearTimeout(heartbeat);
}

function getTime() {
return (new Date()).getTime();
}

function intervalHeartbeat() {
var now = getTime();
var diff = now - lastInterval - 200;
lastInterval = now;
if(diff > 1000) { // don't trigger on small stutters less than 1000ms
clearTimers();
}
}
lastInterval = getTime();
heartbeat = setInterval(intervalHeartbeat, 200);

您可以在此处找到更多详细信息:http://aawaara.com/post/74543339755/smallest-piece-of-code-thats-going-to-change-the-world

关于javascript - pagehide 和 pageshow 事件在 ios chrome 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311478/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com