В процессе перевода.

 

Свойство обработчика события 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.

Since 25 May 2011, the HTML5 specification states that calls to window.alert(), window.confirm(), and window.prompt() methods may be ignored during this event. Смотрите 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' в этой спецификации.
Рекомендация  

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

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

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

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

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