Извините за длинный пост, но это требует некоторого контекста. Степка - Laravel + Vanilla JS, и я использую EtherPad для редактирования документов. Он встроен на последнем этапе формы из двух частей. > Данные, приведенные в первой части формы, хранятся через Laravel < /li>
EtherPad готов показать пустую подушку во второй части формы и создает свои собственные вещи в своей собственной базе данных < /li>
Представлена вторая часть: EtherPad обновляет его материал, я заполняю таблицу отображения в своей базе данных, а затем я делаю другие вещи, имеющие отношение только к моему приложению. < /li>
< /ul>
Выпуск < /h2>
Первая часть формы представлена через Ajax по различным причинам использования; Таким образом, если пользователь находится на второй части и перезагружает страницу, он возвращается к первому шагу, и часть моей работы теряется - он создает несоответствия в моей базе данных и позволяет ненужным материалам, созданным в EtherPad. < /p>
нужен < /h2>
Поэтому мне нужно поймать любые и все способы перезагрузить страницу и показать пользовательский модал подтверждения. Это позволяет мне правильно очистить данные. R, ctrl+shift+r), разловые ссылки нажмите (например, ссылка Go Back), кнопки мыши с подхватом/переадресация, ... Я понял, что не могу поймать кнопку перезагрузки браузера, которая неудачна.
подход 2 < /h2>
Я переключился на подход, используя Performancenavigationtiming, с событием перед загрузкой: < /p>
window.addEventListener('beforeunload', (event) => {
if (performance.getEntries()[0].type == "reload") {
Shared.cancelForm(false);
window.addEventListener('unload', (event) => {
Shared.cancelForm(false);
});
}
});
< /code>
работает как очарование, но браузер продолжает показывать мне свое собственное подтверждение модала, которое я не могу настроить или удалить, насколько я знаю. Когда пользователь нажимает «Оставайся на странице», он показывает мой собственный модал CANCELFORM. Я добавил слушатель Unload, чтобы попытаться поймать тот факт, что пользователь может нажать «Оставить страницу» в модале браузера, но, похоже, не работает. < /P>
Далее возможный подход < /h2>
Мне было интересно, может ли PerformanceObserver помочь, но я не уверен, как правильно его использовать, и не будет ли он иметь какое -либо использование в моем случае. Насколько я понимаю, вполне ограничено. !!
Подробнее здесь: https://stackoverflow.com/questions/793 ... stom-modal
Vanilla JS - Поймайте события Reload, чтобы показать пользовательский модальный ⇐ Javascript
Форум по Javascript
1738145813
Anonymous
Извините за длинный пост, но это требует некоторого контекста. Степка - Laravel + Vanilla JS, и я использую EtherPad для редактирования документов. Он встроен на последнем этапе формы из двух частей. > Данные, приведенные в первой части формы, хранятся через Laravel < /li>
EtherPad готов показать пустую подушку во второй части формы и создает свои собственные вещи в своей собственной базе данных < /li>
Представлена вторая часть: EtherPad обновляет его материал, я заполняю таблицу отображения в своей базе данных, а затем я делаю другие вещи, имеющие отношение только к моему приложению. < /li>
< /ul>
Выпуск < /h2>
Первая часть формы представлена через Ajax по различным причинам использования; Таким образом, если пользователь находится на второй части и перезагружает страницу, он возвращается к первому шагу, и часть моей работы теряется - он создает несоответствия в моей базе данных и позволяет ненужным материалам, созданным в EtherPad. < /p>
нужен < /h2>
Поэтому мне нужно поймать любые и все способы перезагрузить страницу и показать пользовательский модал подтверждения. Это позволяет мне правильно очистить данные. R, ctrl+shift+r), разловые ссылки нажмите (например, ссылка Go Back), кнопки мыши с подхватом/переадресация, ... Я понял, что не могу поймать кнопку перезагрузки браузера, которая неудачна.
подход 2 < /h2>
Я переключился на подход, используя Performancenavigationtiming, с событием перед загрузкой: < /p>
window.addEventListener('beforeunload', (event) => {
if (performance.getEntries()[0].type == "reload") {
Shared.cancelForm(false);
window.addEventListener('unload', (event) => {
Shared.cancelForm(false);
});
}
});
< /code>
работает как очарование, но браузер продолжает показывать мне свое собственное подтверждение модала, которое я не могу настроить или удалить, насколько я знаю. Когда пользователь нажимает «Оставайся на странице», он показывает мой собственный модал CANCELFORM. Я добавил слушатель Unload, чтобы попытаться поймать тот факт, что пользователь может нажать «Оставить страницу» в модале браузера, но, похоже, не работает. < /P>
Далее возможный подход < /h2>
Мне было интересно, может ли PerformanceObserver помочь, но я не уверен, как правильно его использовать, и не будет ли он иметь какое -либо использование в моем случае. Насколько я понимаю, вполне ограничено. !!
Подробнее здесь: [url]https://stackoverflow.com/questions/79396303/vanilla-js-catching-reload-events-to-show-custom-modal[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия