Во-первых, вам нужно перехватить событие «beforeunload» (которое здесь делали предыдущие ответы).
// Display browser warning message when back/forward/reload or hyperlink navigation occurs
$(window).on('beforeunload', function(e) {
console.log('page navigation captured');
return 'By leaving this page you will lose the data you have entered here.';
});
Что еще более важно, вы хотите разрешить непрерывную навигацию по определенным элементам (например, ссылки с классом"позволяют-навигации").Чтобы добиться этого, нужно удалить обработчик событий при нажатии на выбранные вами ссылки.
// Disable capture for certain elements
$('.allow-navigation').on('click', function(e) {
$(window).off('beforeunload');
console.log('page navigation allowed');
});
Будет работать для ваших ссылок типа:
<a href="#" class="allow-navigation">Click me</a>
Таким образом, вы можете управлять навигацией по страницам.Браузер назад / вперед / и т.д. все еще открывает окно подтверждения.Но выбранные вами ссылки будут работать без сбоев.
Надеюсь, это поможет.