Javascript OnPageUnload - на странице «оставить страницу» должен вызвать дополнительный метод

В этом проблема: мое веб-приложение (php) имеет функцию мастера, которая собирает данные пользователя по страницам и хранит их в сеансе. Если клиент пытается перейти от страницы до того, как они завершили работу мастера, я бы хотел отобразить массаж с эффектом «Вы потеряете свои данные». Если клиент выбирает навигацию, данные сеанса должны быть стерты.

Я знаю, что я могу перехватить это действие, связав событие onpageunload , но есть способ затем сделать другой вызов, например. ajaxClearWizard() , если клиент говорит «да»?

PS Я вижу, что, возможно, сеанс не должен использоваться здесь, но я использую существующую библиотеку, и, хотя это свойство-данных-данных было обязательной функцией, бизнес теперь требует его удаления :(

Любые идеи, альтернативы? Заранее спасибо!

2
nl ja de
Есть несколько разумных ответов на этот вопрос . Результат: вы не можете этого сделать.
добавлено автор RichardTowers, источник
Ах, справедливо! Благодаря!
добавлено автор Katya S, источник
Ах, справедливо! Благодаря!
добавлено автор Katya S, источник
Ах, справедливо! Благодаря!
добавлено автор Katya S, источник

3 ответы

window.onbeforeunload = function() {
  return 'Your content has not been properly saved yet!';
};

Это заставит браузер отображать окно подтверждения посередине с указанным выше контентом.

2
добавлено
Об этом уже упоминалось в вопросе.
добавлено автор ATOzTOA, источник
Это не проблема. Пользуясь вашим ответом, клиент увидит окно сообщения, нажмите «Да» и отплывет, а данные сеанса все равно будут там. Я хочу, чтобы, если клиент нажимает «Да», я хочу вызвать свой собственный метод «ajaxClearWizard»
добавлено автор Katya S, источник
window.onbeforeunload = function() {
  return 'Your content has not been properly saved yet!';
};

Это заставит браузер отображать окно подтверждения посередине с указанным выше контентом.

2
добавлено
Об этом уже упоминалось в вопросе.
добавлено автор ATOzTOA, источник
Это не проблема. Пользуясь вашим ответом, клиент увидит окно сообщения, нажмите «Да» и отплывет, а данные сеанса все равно будут там. Я хочу, чтобы, если клиент нажимает «Да», я хочу вызвать свой собственный метод «ajaxClearWizard»
добавлено автор Katya S, источник
window.onbeforeunload = function() {
  return 'Your content has not been properly saved yet!';
};

Это заставит браузер отображать окно подтверждения посередине с указанным выше контентом.

2
добавлено
Об этом уже упоминалось в вопросе.
добавлено автор ATOzTOA, источник
Это не проблема. Пользуясь вашим ответом, клиент увидит окно сообщения, нажмите «Да» и отплывет, а данные сеанса все равно будут там. Я хочу, чтобы, если клиент нажимает «Да», я хочу вызвать свой собственный метод «ajaxClearWizard»
добавлено автор Katya S, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском