jQuery(window).bind('beforeunload', function(e) {
var message = "Why are you leaving?";
e.returnValue = message;
return message;
});
Обратите внимание, что определенные события могут игнорироваться:
[...] спецификация HTML5 заявляет, что вызовы методов window.showModalDialog(), window.alert(), window.confirm() и window.prompt() может игнорироваться во время этого события.
Важное замечание об AJAX:
Если вы пытаетесь сделать вызов AJAX, когда пользователь покидает запрос, его можно отменить (прервать) до его завершения. Вы можете отключить параметр async как способ обойти это. Например:
$.ajax({
url: "/",
type: "GET",
async: false
});
Обновление 2017:
Многие браузеры больше не поддерживают пользовательский текст в диалоговом окне оповещения, когда пользователь уходит.
В последних версиях Chrome, Firefox, Opera и Safari не отображается какой-либо пользовательский текст.