众所周知,Mobile Safari会暂停在网页上执行Javascript
您可以订阅窗口的"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 的重新激活可以通过心跳循环来检测,如同对该主题的讨论中所描述的.