Да, я понимаю, что это ужасный интерфейс и плохая доступность, но я вынужден искать варианты из-за работы по контракту (с которой я изначально не соглашался и застрял).
Я знаю, что вы можете назначить обработчик событий для onbeforeunload
, например:
window.onbeforeunload = function() {
return 'You have unsaved changes!';
}
Это приведет к появлению диалога, сгенерированного ОС / браузером, который не может быть настроен. Вам будет предложено отменить запрос или продолжить.
Пока что кажется, что единственный способ отобразить любую пользовательскую настройку - это вставить window.open
в этот обработчик событий:
window.onbeforeunload = function() {
var x = window.open('modal.html');
}
Скорее всего, это будет заблокировано любым современным браузером как «всплывающее окно». Мне нужно отобразить совершенно новую страницу с моим диалогом, но это, кажется, единственный способ удовлетворить спрос.
Это единственный вариант, который у меня есть? Кроме насильственного предупреждения клиента, что делать это не рекомендуется?
Единственным другим вариантом будет полагаться на пользователя, нажав "Отменить запрос", а затем вставьте диалоговое окно.
Вопросы, которые у меня есть уже просмотрены: