Существует ли альтернативный метод использования onbeforeunload в мобильном сафари?

Есть ли альтернативный метод для использования вместо onbeforeunload в мобильном сафари? Я заметил, что Google смог захватить событие onbeforeunload в мобильном сафари. Кто-нибудь понял, как они это делают?

Google смог сделать это с помощью своего клиента gmail. Создайте новое сообщение... введите что-то в текстовой области... нажмите кнопку браузера назад. Появляется предупреждающее сообщение. Я использовал iPad для тестирования.

Ответ 1

Я бы предположил, что они используют API истории. Слушая popstate

window.addEventListener("popstate", function(e) { ... });

вы можете показать предупреждение, прежде чем разрешить делать что-то глупое.

Ответ 2

Используйте pagehide событие (reference)