O evento Pagehide na troca iminente de guias no Mobile Safari não dispara quando executado no iPad
É bem sabido que o Mobile Safari pausa a execução de Javascript em uma página da Web quando
você muda para a guia diferente do navegadoralternar para um aplicativo iOS diferente (por exemplo, quando você recebe uma chamada, o aplicativo do telefone)Você pode se inscrever para a janela"pagehide" e"pageshow" eventos para detectar suspensão iminente e reativação de Javascript.
O problema é que esses eventos não são acionados quandoalternância de tabulação (1.) em umiPad Safari Móvel. Em umIphone Mobile Safari tudo ébem, tal como descrito acima.
É trivial demonstrar:
<!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>
É acionado em iPads (iOS5 e iOS6 Preview3) somente ao fazer comutação de aplicativos (2.) e não na alternância de guias (1.). Todos os iPhones funcionam bem ..
Alguém conseguiu detectar uma iminente tabulação no navegador do iPad?
oreativação de Javascript quando a aba se torna ativa novamente pode ser detectada por um loop de batimento cardíaco como descrito emesta discussão do mesmo tópico.