ventana sesion seguro que pestaña para pagina navegador evento esta desea con codigo cerrar automaticamente antes abrir abandonar javascript browser

javascript - sesion - Solicitar confirmación al cerrar una pestaña



evento antes de cerrar ventana javascript (3)

Necesita escuchar en el evento de beforeunload previa no estándar. Esto es compatible con casi todos los navegadores, se espera de Opera, que se sabe que cumple estrictamente con los estándares W3C.

Aquí hay un ejemplo de inicio:

window.onbeforeunload = function() { return "Hey, you''re leaving the site. Bye!"; };

Este mensaje aparecerá en una especie de diálogo de confirmación. Este mensaje aparecerá justo antes de que el cliente descargue la página. Eso puede ser un navegador cerrado, pero eso también puede ser una simple acción de navegación, como hacer clic en un enlace o enviar un formulario en la página.

Lo más probable es que también desee desactivarlo (simplemente establecer como null ) cada vez que se haga clic en un enlace interno o se envíe un formulario interno. Usted no quiere molestar a los usuarios finales con un comportamiento poco intuitivo. Puede hacerlo escuchando el click eventos de los enlaces deseados y el evento de submit de los formularios deseados. jQuery puede ser de gran ayuda aquí, ya que lo hace de manera compatible con la navegación cruzada, por lo que no necesita escribir> 20 líneas de código JS para esto:

<script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> window.onbeforeunload = function() { return "You''re leaving the site."; }; $(document).ready(function() { $(''a[rel!=ext]'').click(function() { window.onbeforeunload = null; }); $(''form'').submit(function() { window.onbeforeunload = null; }); }); </script>

Solo necesita dar a todos los enlaces externos el atributo estándar de facto rel="ext" para indicar que esos son enlaces externos.

<a href="http://google.com" rel="ext">Google</a>

Cuando cierro la página en algún navegador, quiero que aparezca un cuadro de mensaje y preguntarme si realmente quiero cerrar la página o no, con dos botones y si hago clic en No , esta pestaña no se cerrará.

¿Cómo puedo hacer eso?


antes de onbeforeunload incendios antes de que se onunload .

No puede cancelar el evento en onunload . onbeforeunload permite devolver una cadena de eventos (por ejemplo, window.onbeforeunload = function() {return "really leave now?"} , y el navegador le preguntará al usuario si quiere abandonar su página. el evento si se hace clic en "Sí" (así es como debería ser, en mi opinión).

Puntos generales:

  • alert , prompt y confirm no están permitidos en ninguno de los eventos.
  • Ninguno es compatible con Opera.

ADVERTENCIA: En IE6 / 7 al menos (y posiblemente IE8 pero no FF / Chrome, etc.) antes de la onbeforeunload y de la onunload se activan cuando se hace clic en los enlaces anchors / javascript. Algunos ejemplos:

  • <a href="#myanchor">trigger unload!</a>
  • <a href="javascript: alert(''message!'')">trigger unload!</a>

(MSDN es una fuente tan buena como cualquiera, considerando que no es estándar y que Firefox / Chrome / Safari parece haber copiado en gran medida la implementación de IE).


usa el evento onbeforeunload

window.onbeforeunload = function(){ return "Are you sure you want to close the window?"; }

Esto mostrará un cuadro de mensaje donde el usuario puede elegir si cerrar o no la ventana.

Tenga en cuenta que esto no es compatible con Opera .