Отображение пользовательского окна подтверждения после отмены загрузки окна модуля перед загрузкой в ​​Chrome - PullRequest
0 голосов
/ 14 января 2019

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

  1. Форма открывается на отрывном окне

  2. Есть несохраненные изменения

  3. Окно закрывается

В этих обстоятельствах мне нужно отобразить стандартное окно модуля, enter image description here

и если пользователь нажимает «Отмена», то должно появиться окно подтверждения enter image description here

Но в Chrome значок в окне подтверждения не появляется enter image description here

В Firefox и IE значок появляется при одинаковых обстоятельствах.

Код события onbeforeunload:

window.addEventListener('beforeunload', function (e) {
    // function where the confirm window is formed
    showConfirmWindow();

    return e.returnValue = window.getResource('', 'ex.unsaved_changes');
});

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

Дополнительная информация: если добавить тайм-аут на 0 мс для функции, где формируется окно подтверждения - отображается значок

window.addEventListener('beforeunload', function (e) {
    // function where the confirm window is formed
    setTimeout(showConfirmWindow, 0);

    return e.returnValue = window.getResource('', 'ex.unsaved_changes');
});

Но это плохое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...