Quiero poder tener una copia de mi sitio web para que vuelva a aparecer cada vez que el usuario intente abandonar el sitio. ¿Existe tal método/controlador de eventos?
No es necesario mencionar la mala interfaz de usuario, solo quiero explorar más con los controladores de eventos
Podría usar el evento onbeforeunload .
window.onbeforeunload = function() { return 'Are you sure that you want to leave this page?'; };No hay forma de evitar que un usuario abandone su sitio web, y mucho menos generar una nueva pestaña al salir.
Aquí hay una pregunta similar que analiza por qué esto es una mala idea y por qué la mayoría de los navegadores modernos han eliminado esta capacidad desde entonces:
"¿Cómo impedir que los usuarios cierren una ventana en Javascript?"
El siguiente ejemplo es puramente teórico:
<!html> <html> <head> <title>Persistent Page...</title> <script type="text/javascript"> function closeHandler(e) { e.preventDefault(); // Does not actually cancel e.returnValue = ''; // Does prevent dialog (doesn't show anyways) alert('Leaving website, opening a new tab...'); // Does not display window.open(window.location.href, '_blank'); // Open a new tab?, No... } if (window.addEventListener) { window.addEventListener('beforeunload', closeHandler, true); } else if (window.attachEvent) { window.attachEvent('onbeforeunload', closeHandler); } </script> </head> <body> <h1>Persistent Page...</h1> </body> </html>