Запуск вызова ajax при закрытии окна

0

Мне нужно вызвать метод при закрытии окна. Для этого я попытался установить оператор предупреждения, и он отлично работает как в IE, так и в FIREFOX. Но не работает в хроме. Пожалуйста помоги мне с этим..

$(window).bind('beforeunload', function(){
   alert ("before unload")
});
Теги:

1 ответ

3
Лучший ответ

Вы не можете этого сделать. В современных браузерах нет возможности надежно выполнять немедленную операцию над событием beforeunload (особенно, все операции, связанные с запросом, обычно предотвращаются). Это мера безопасности: ничто, что может задержать или предотвратить закрытие окна пользователем, является приемлемым.

Вам нужно изменить логику вашего приложения. Современные приложения AJAX должны постоянно сохранять данные, которые требуют сохранения или обеспечивают видимый способ запуска сохранения, они не могут ждать закрытия окна. И вам нужно управлять сессиями на сервере на протяжении всего жизненного цикла, не полагаясь на браузер, выходящий из системы.

Что касается предупреждения и Chrome, здесь выдержка из MDN:

Начиная с 25 мая 2011 года спецификация HTML5 заявляет, что вызовы методов window.showModalDialog(), window.alert(), window.confirm() и window.prompt() могут игнорироваться во время этого события.

Вероятно, все больше браузеров предотвратит это предупреждение, которое в большинстве случаев просто болезненно.

  • 0
    Вы хотите сказать, что само окно window.unload не будет работать ??? или просто часть оповещения в window.unload не будет работать?
  • 0
    на самом деле мне нужно активировать функцию выхода из системы, когда окно закрывается ..
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню