運行時,不會觸發大家都知道移動Safari暫停在網頁中的JavaScript執行時Pagehide事件在iPad上
- 您切換到不同的瀏覽器選項卡
- 開關不同的iOS應用(例如,當你得到了來電的手機應用程序)
您可以訂閱窗口的「pagehide」和「pageshow」前夕nts來檢測即將停止和重新激活Javascript。
的問題是,這些事件不火的時候,標籤交換上iPad的移動Safari(1)。在iPhone移動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>
它觸發對標籤交換(1)做應用程序切換(2),而不是僅在臺iPad(的iOS5和iOS6的Preview3)。所有的iPhone手機都可以正常工作。
有沒有人能夠在iPad瀏覽器上檢測即將切換的標籤?
當標籤變得活動時,Javascript的重新激活可以通過心跳循環檢測到,如this discussion of the same topic中所述。
該事件在設備鎖定時也會觸發。您可以使用頁面展示,當設備解鎖並且頁面再次顯示時,將會觸發該頁面展示。 – 2013-04-05 15:07:04
你試過[window.onblur](https://developer.mozilla.org/en-US/docs/Web/API/window.onblur)嗎?這可能有效。 – Uooo 2013-06-21 08:51:47