小编Sem*_*mel的帖子

在iPad上运行时,Mobile Safari中即将进行的选项卡切换的Pagehide事件不会触发

众所周知,Mobile Safari会暂停在网页上执行Javascript

  1. 切换到其他浏览器选项卡
  2. 切换到不同的iOS应用程序(例如,当您接到来电的手机应用程序时)

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

问题是,在iPad Mobile Safari 上切换选项卡(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>
Run Code Online (Sandbox Code Playgroud)

只有在进行应用程序切换(2.)而不是切换选项卡(1.)时才会在iPad(iOS5和iOS6 Preview3)上触发.所有iPhone工作正常..

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

当标签再次变为活动时,Javascript 的重新激活可以通过心跳循环来检测,如同对该主题的讨论中所描述的.

javascript mobile-safari dom-events ios

13
推荐指数
1
解决办法
6793
查看次数

标签 统计

dom-events ×1

ios ×1

javascript ×1

mobile-safari ×1