Обнаружение браузеров, которые не поддерживают onunload / onbeforeunload

Из всех браузеров кажется, что только Opera не поддерживает события onunload / onbeforeunload. (Прошло пятнадцать лет, Opera!) Решения этой проблемы обсуждались много раз, например: при обнаружении поддержки перед выгрузкой

К сожалению, начиная с Opera 11.51, («onbeforeunload» в окне) == true , но фактическое событие onbeforeunload никогда не выполняется!

Мое веб-приложение должно отправлять данные на сервер, когда пользователь покидает страницу; Для этого я использую синхронный запрос ajax. Похоже, мне приходится прибегать к использованию кнопки «Сохранить» где-нибудь на странице, чтобы скрыть проблемы с Opera. Однако я не хочу, чтобы эта кнопка сбивала с толку пользователей, чьи браузеры поддерживают автоматическое сохранение через ajax, поэтому мне бы очень хотелось, чтобы кнопка отображалась только в Opera.

Является ли мой единственный выбор браузером - обнаружение? Проблема в том, что у Opera есть возможность маскироваться под другие браузеры.

5
задан Community 23 May 2017 в 11:51
поделиться