Подтвердить что ты не робот

Onunload не работает в Chrome и Safari

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

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

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

Событие разгрузки правильно повышается в IE и FF. Но он не поднимается в хроме и сафари.

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Пример:

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

Ответ 3

Возможно, попробуйте onbeforeunload событие?

Ответ 4

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