JS-скрипт для подтверждения закрытия страницы

Если установить обработчик события beforeunload, который возвращает true или другое значение:

window.onbeforeunload = function() {
	return true;
};
JS

То при попытки пользователем перезагрузить страницу или закрыть окно или вкладку браузера, будет выводится сообщение:

При попытки перезагрузить страницу или закрыть окно  браузера

Ранее можно было прописать свой текст, но из-за злоупотреблений эту возможность убрали.

Грамотное использование этого события – избежать случайного закрытия окна если пользователь начал заполнять форму. Сделать это можно на JQuery, повесив событие onchange на все поля формы и удаление onbeforeunload при её отправки.

set_onbeforeunload = function(){
	return true;
};

$(document).ready(function(){
	$(document).on('input', ':input', function() {
		window.onbeforeunload = set_onbeforeunload;
	});
	
	$('form').submit(function(){
		window.onbeforeunload = null;
	});
});
JS

Пример работы

01.10.2019 , обновлено 23.10.2019

Комментарии

, чтобы добавить комментарий.

Другие публикации

Contenteditable – текстовый редактор
Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а...
12.12.2019
1568
+6
Примеры отправки AJAX JQuery
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
23.12.2016
18833
+6
Работа с Textarea jQuery
Сборник jQuery приемов с textarea - получить содержимое, вставить значение, подсчет количества символов и строк и т.д.
04.03.2018
14468
+2
Быстрый поиск с выводом результатов
Виджет на JQuery и AJAX, который покажет результаты поиска непосредственно при вводе в текстовое поле.
25.09.2019
1804
+2
Модальное окно на затемненном фоне
Для модальных окон есть множество плагинов такие, как fancybox, Twitter Bootstrap и т.д. Но бывают случаи когда нет...
12.12.2018
11870
+7
Автоматическое сжатие и оптимизация картинок на сайте
Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018
4542
+3