El evento Pagehide en el cambio inminente de pestañas en Mobile Safari no se dispara cuando se ejecuta en iPad
Es bien sabido que Mobile Safari detiene la ejecución de Javascript en una página web cuando
cambia a otra pestaña del navegadorcambiar a una aplicación iOS diferente (por ejemplo, cuando recibe una llamada entrante, la aplicación del teléfono)Puedes suscribirte a la ventana de"página oculta" y"pageshow" Eventos para detectar la inminente suspensión y reactivación de Javascript.
El problema es que esos eventos no se activan cuandocambio de pestaña (1.) en uniPad Safari móvil. En unaiPhone Mobile Safari todo esmulta, tal como se describe anteriormente.
Es trivial demostrar:
<!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>
Se dispara en iPads (iOS5 y iOS6 Preview3) solo cuando se realiza el cambio de aplicación (2.) y no en el cambio de pestaña (1.). Todos los iPhones funcionan bien ..
¿Alguien ha podido detectar un cambio de pestaña inminente en el navegador del iPad?
losreactivación de Javascript cuando la pestaña vuelve a estar activa puede ser detectada por un bucle de latidos del corazón como se describe enEsta discusión del mismo tema..