onunload не работает в Chrome и Safari - PullRequest
12 голосов
/ 27 июля 2011

У меня есть родительская страница и дочерняя страница.В теге тела дочерней страницы у меня есть код ниже.

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

когда я нажимаю кнопку на родительской странице, дочерняя страница должна закрыться и вызвать событие onunload.

Событие unload корректно возникает в IE и FF.Но это не повышение в хром и сафари.

Пожалуйста, помогите мне.

Ответы [ 4 ]

12 голосов
/ 27 июля 2011

Современные браузеры WebKit не обязательно запускают событие unload в тот момент, когда страница скрыта. Это сделано для улучшения кэширования.

Возможно, вы захотите заменить использование unload на событие pagehide.

См. в этом блоге для углубленного обсуждения .

7 голосов
/ 14 ноября 2012

Unload работает в современных браузерах, но, например, вы не можете запустить предупреждение. Увидеть: http://bugs.jquery.com/ticket/10509

Также, если вы хотите использовать $ .get или $ .post при выгрузке, лучше использовать $ .ajax с async = false.

Ex:

$(window).unload(function() {
            $.ajax({
              url: '/some_url.htm',
              async: false
            });
    });
5 голосов
/ 27 июля 2011

Может быть, попробовать onbeforeunload событие?

1 голос
/ 31 июля 2011

да, перед загрузкой, прикрепленной к окну (или внутреннему окну дочерней страницы), это должно сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...