OnbeforeUnload и сообщение о несохраненных данных [дубликат]

131
02 мая 2019, 08:20

На данный вопрос уже ответили:

  • onbeforeunload не выводит текст 2 ответа

У меня ситуация такова:

1.на основном окне в форме вводятся данные,

2.они не сохраняются,

3.затем эта форма открывается в отдельном окне,

4.которое сразу же закрывают.

При закритии стоит ивент onbeforeunload который должен привести в действие дефолтное модальное окно, а затем если пользователь нажал Cancel - появляется кастомное окно. Но в описаной выше ситуации отдельное окно закривается, только видно как мeлькает кастомное окошко. Модальное даже не показывается. Но при дебаге срабатывает как должно быть.

И если между 3 і 4 пунктами вставить клик в любой области отдельного окна - все тоже работает как должно. Вот код связан с onbeforeunload (пробовала вставить window.focus(); внутри - не помогло):

var answerEvent =  window.addEventListener('beforeunload', function (e) {
                if (!this.reopenInTearOff && window.itemsVault.isDirtyEx(window.item)) {
                    confirmExitEditMode().then(function (shouldCloseWindow) {
                        if (shouldCloseWindow) {
                            window.close();
                        }
                    });
                    (e || window.event).returnValue =  window.itemsVault.getResource('', 'item_methods_ex.changes_not_saved');
                    return window.itemsVault.getResource('', 'item_methods_ex.unsaved_changes');
                }
            }); 
Answer 1

Для борьбы с нежелательными всплывающими окнами некоторые браузеры не отражают подсказки, созданные перед обработкой событий, если только эта страница не взаимодействует; некоторые из них вообще не отображаются.

Источник: WindowEventHandlers.onbeforeunload

READ ALSO
Обработка post запроса из js ajax

Обработка post запроса из js ajax

Доброго времени суток!

170
Как при нажатии на кнопку запускать анимацию, сделанную при помощи @keyframes?

Как при нажатии на кнопку запускать анимацию, сделанную при помощи @keyframes?

Как при нажатии на кнопку <button> запускать анимацию, сделанную при помощи @keyframes?

128
Mysql slow log длительный LOCK (10k sec)

Mysql slow log длительный LOCK (10k sec)

Есть таблица innodb с 4 млн записей

147
MySQL автоинкремент пропуск Id

MySQL автоинкремент пропуск Id

Использую базу данных MySQL

122