众所周知,Mobile Safari在以下情况下会暂停网页上的Javascript执行:>
您可以订阅窗口的“ pagehide”
问题是,当在[[iPad
Mobile Safari上进行tab-switching(1.)时,不会触发这些事件。如上所述,在iPhone Mobile Safari上,所有内容均为fine。演示很简单:<!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>
仅在进行应用程序切换(2.)时在iPad(iOS5和iOS6 Preview3)上触发,而在选项卡切换(1.)上不触发。所有iPhone都可以正常工作。有人能在iPad浏览器上检测到即将发生的标签切换吗?
tab再次变为活动状态时,Javascript的
reactivation
可以通过this discussion of the same topic中所述的心跳循环来检测。[众所周知,当您切换到其他浏览器选项卡时,切换到另一个iOS应用程序(例如,当您接到电话应用程序的来电时,Mobile Safari会暂停网页上Javascript的执行...