Tengo una serie de páginas que abre ventanas emergentes (nuevas pestañas en Mobile Safari). Cada una de estas ventanas emergentes necesita saber cuándo están enfocadas o no. En los escritorios, usamos window.onblur
y window.onfocus
para controlar este comportamiento. Sin embargo, ninguno de estos eventos funciona en iPad. También probé window.onpageshow
y window.onpagehide
que tampoco parecen disparar en el momento adecuado. Tengo un archivo HTML de prueba:Detectar el movimiento a una nueva pestaña en Mobile Safari
<html>
<head>
<script language="javascript">
console.log('Hello');
window.onblur = function(e) { console.log('blur'); };
window.onfocus = function(e) { console.log('focus'); };
window.onpagehide = function(e) { console.log('pagehide'); };
window.onpageshow = function(e) { console.log('pageshow'); };
</script>
</head>
<body>
<a href="http://www.google.com" target="_blank">Click Me</a>
</body>
</html>
En teoría, al hacer clic en 'Click Me', que debería recibir un evento de desenfoque cuando aparezca la nueva ventana. Pero esto no ocurre en Mobile Safari. onpagehide
y onpageshow
tampoco muestran amor, solo ayudan a detectar cuándo está a punto de cerrar la pestaña.
¿Cómo puedo obtener el comportamiento que estoy buscando en Mobile Safari? ¿Es posible?
¡Gracias, parece el boleto! –
en realidad de acuerdo con el comentario de Chris Keele, que puede no funcionar en Mobile Safari. No tengo mi iPad ahora mismo, si lo que dice es cierto, ¿hay alguna forma de evitarlo? –
De hecho, ** no ** funciona en iOS. – arik