Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

 

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

Примечание: Для борьбы с нежелательными всплывающими окнами, некоторые браузеры не отображают текст передаваемый в 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 страницы в 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() может игнорироваться во время этого события. Смотрите cпецификацию HTML5 чтобы узнать подробности.

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

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

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

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

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

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1.0 (Да) 1 4 12 3
Custom text support removed 51.0 Нет 44.0 (44.0)   38 9.1
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Да) (Да) ? ? ? (no) defect (Да)
Custom text support removed ? 51.0 Нет 44.0 (44.0)       51.0

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

Метки документа и участники

Внесли вклад в эту страницу: Khich, mcmimik, R.A.S., sumthief, WispProxy, vitalyzhakov, artemderzkiy, rtf-const
Обновлялась последний раз: Khich,