gpt4 book ai didi

javascript - 在 iPad 上运行时,Mobile Safari 中即将切换标签页的 Pagehide 事件不会触发

转载 作者:技术小花猫 更新时间:2023-10-29 10:28:01 25 4
gpt4 key购买 nike

众所周知,当 Mobile Safari 暂停网页上的 Javascript 执行时

  1. 你切换到不同的浏览器标签
  2. 切换到不同的 iOS 应用程序(例如,当您接到来电时切换到电话应用程序)

您可以订阅窗口的“pagehide”“pageshow” 事件以检测即将暂停和重新激活的 Javascript。

问题是,在iPad Mobile Safari 上tab-switching (1.) 时不会触发这些事件。在 iPhone Mobile Safari 上,一切都正常,就像上面描述的那样。

证明很简单:

<!DOCTYPE html>
<html>
<head>
<script>
window.addEventListener("pagehide", function(evt){
var logger = document.getElementById('log_id');
logger.innerText = logger.innerText + " pagehide fired!";
}, false);
</script>
</head>
<body>
<div id="log_id"></div>
</body>
</html>

它仅在 iPad(iOS5 和 iOS6 Preview3)进行应用程序切换 (2.) 而不是标签切换 (1.) 时触发。所有 iPhone 都能正常工作..

有没有人能够检测到 iPad 浏览器上即将发生的标签切换?

The reactivation of Javascript when the tab becomes active again can be detected by a heart beat loop as described in this discussion of the same topic .

最佳答案

尝试检查文档的焦点和模糊度。

为什么需要 Page Visibility API?

  1. 您可以使用存储事件来表示其他页面,谁是事件的。
  2. 您可以使用计时器 (setInterval) 来检查自上次计时器启动以来的时间。如果它比预期的大 - 页面被隐藏,因为大多数浏览器停止计时器然后页面被隐藏。

关于javascript - 在 iPad 上运行时,Mobile Safari 中即将切换标签页的 Pagehide 事件不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11795864/

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