2011-07-27 18 views
12

Tengo la página padre y la página secundaria. En la etiqueta del cuerpo de la página del niño tengo el código siguiente.onunload no funciona en Chrome y safari

<body onunload="window.g_autoclosed=true;if(window.opener&&window.opener.NavModelessClose){window.opener.NavModelessClose(window,false);}"> 

cuando hago clic en el botón en la página principal, la página secundaria debe cerrarse y llamar al evento onunload.

El evento de descarga se está levantando correctamente en IE y FF. Pero no está aumentando en cromo y safari.

Por favor, ayúdame.

+0

posible duplicado de http://stackoverflow.com/questions/803887/can-i-pop-up-a-confirmation-dialog-when-the-user-is-closing -the-window-in-safari –

Respuesta

12

Los navegadores WebKit modernos no activan necesariamente el evento unload en el momento en que la página está oculta. Esto se hace para permitir un mejor almacenamiento en caché.

Puede considerar reemplazar el uso de unload con el evento pagehide.

Ver this blog post for an in-depth discussion.

+0

onunload abd onpagehide ambos no funcionan –

1

onbeforeunload sí adjunta a la ventana (o ventana interna de la página secundaria) debe hacerlo

7

de descarga funciona en los navegadores modernos, pero por ejemplo no puedes lanzar una alerta. Ver: http://bugs.jquery.com/ticket/10509

Además, si desea utilizar $ o $ .post .get de descarga, es mejor que utilice $ .ajax con async = false.

Ex:

$(window).unload(function() { 
      $.ajax({ 
       url: '/some_url.htm', 
       async: false 
      }); 
    }); 
Cuestiones relacionadas