Согласно ссылке MDN window.onbeforeunload,
Функция должна присвоить строковое значение свойству returnValue объекта Event и вернуть ту же строку.
Обратите внимание на этот jsFiddle
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 не отображают пользовательский текст.
Edge и IE по-прежнему поддерживают это.
Обновление 2021:
Только Internet Explorer поддерживает настраиваемое текстовое сообщение.
person
Rowan Freeman
schedule
01.04.2014
mymethod();
и как это работает в других браузерах? - person The Alpha   schedule 01.04.2014