WindowEventHandlers.onbeforeunload

 

Свойство обработчика события 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' в этой спецификации.
Рекомендация  

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

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
onbeforeunloadChrome Полная поддержка 1Edge Полная поддержка ДаFirefox Полная поддержка 1IE Полная поддержка 4Opera Полная поддержка 12Safari Полная поддержка 3WebView Android Полная поддержка ДаChrome Android Полная поддержка ДаFirefox Android ? Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android ?
Custom text support
УстаревшаяНестандартная
Chrome Нет поддержки ? — 51Edge Нет поддержки НетFirefox Нет поддержки ? — 44IE Полная поддержка ДаOpera Нет поддержки ? — 38Safari Нет поддержки ? — 9WebView Android Нет поддержки ? — 51Chrome Android Нет поддержки ? — 51Firefox Android Нет поддержки ? — 44Opera Android Нет поддержки ? — 41Safari iOS Нет поддержки НетSamsung Internet Android ?

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Совместимость неизвестна  
Совместимость неизвестна
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Нестандартная. Ожидается плохая кросс-браузерная поддержка.
Устаревшая. Не следует использовать в новых веб-сайтах
Устаревшая. Не следует использовать в новых веб-сайтах
 

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