WindowEventHandlers.onbeforeunload

Свойство обработчика события WindowEventHandlers.onbeforeunload содержит код, который выполняется при отправке события beforeunload (en-US). Это событие срабатывает, когда окно браузера unload (en-US) свои ресурсы. При этом документ остаётся видимым и событие всё ещё можно отменить.

Примечание: Для борьбы с нежелательными всплывающими окнами, некоторые браузеры не отображают текст передаваемый в beforeunload событии, если они не связаны с самой страницей; некоторые не показывают их вообще. Список конкретных браузеров смотрите в секции: Совместимость_с_браузерами.

Синтаксис

window.onbeforeunload = funcRef
  • funcRef является ссылкой на функцию или выражение функции.
  • Функция должна назначать строковое значение свойству returnValue объекта Event и возвращать ту же строку.

Пример

window.onbeforeunload = function(e) {
  var dialogText = 'Dialog text here';
  e.returnValue = dialogText;
  return dialogText;
};

Примечания

Когда это событие возвращает (или выставляет свойство returnValue) значение, отличное от null или undefined, пользователю предлагается подтвердить unload (en-US) страницы в prompt . В некоторых браузерах возвращаемое значение отображается в этом диалоговом окне. Начиная с Firefox 4, Chrome 51, Opera 38 и Safari 9.1 вместо возвращаемой строки будет показана общая строка, не контролируемая страницей. Например, Firefox отображает строку: "This page is asking you to confirm that you want to leave - data you have entered may not be saved.". Смотрите баг 588292 и Chrome Platform Status.

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

Также необходимо отметить, что различные мобильные браузеры игнорируют результат этого события (это является причиной, почему они не запрашивают подтверждения пользователя). Firefox имеет скрытую настройку в about:config для того, чтобы вести себя также. В сущности это значит, что пользователь постоянно подтверждает, что документ может быть выгружен.

Вы можете и должны обрабатывать данное событие через window.addEventListener() и событие beforeunload (en-US). Больше документации доступно здесь.

Спецификации

Событие было первоначально добавлено Microsoft в Internet Explorer 4 и стандартизовано в HTML5 спецификации.

Specification Status Comment
HTML Living Standard
Определение 'GlobalEventHandlers' в этой спецификации.
Живой стандарт
HTML 5.1
Определение 'GlobalEventHandlers' в этой спецификации.
Рекомендация
HTML5
Определение 'GlobalEventHandlers' в этой спецификации.
Рекомендация

Совместимость с браузерами

{{Compat}}

Смотрите также