Я знаю, что здесь уже есть много похожих тем, но я не могу найти правильный ответ на мою проблему.
У меня есть следующие требования бизнеса для моего приложения MVC:
Если определенная задача не выполнена, выведите всплывающее окно с предупреждением / подтверждением, когда пользователь пытается закрыть окно браузера или покинуть сайт, но разрешить навигацию по сайту.
Если страница изменена и не сохранена, выдайте предупреждение / подтвердите, когда пользователь пытается закрыть окно браузера или уходит со страницы.Совершенно нормально.
Мой следующий код полностью работает с IE.В Google Chrome (GC) 2-е требование работает нормально, но 1-е требование не работает при закрытии окна браузера GC с незавершенной задачей.Событие не сработало, и предупреждение не появляется.Однако, если я открою инструмент F12, он будет работать с правильными значениями переменных.И, если я сначала попытаюсь отойти и выбрать STAY, когда появится всплывающее предупреждение, а затем закрыть окно браузера, оно также будет работать с всплывающим предупреждением.
Любая идея высоко ценится.
window.onbeforeunload = confirmExit;
function confirmExit() {
if (!isTaskComplete && !isValidNavigation) //1st requirement
return "Incomplete task alert.";
if (isPageChanged && !isSubmit) //2nd requirement
return "Unsaved change alert";
return undefined;
}
$('.navigation, .submit').click(function () {
isValidNavigation = true;
});