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, обновлено 01.05.2020

Комментарии

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

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

Если добавить атрибут contenteditable к элементу, его содержимое становится доступно для редактирования пользователю, а...
7722
+10
Из-за отправки файла, медленного интернета или тормозящего браузера, пользователь может нажать кнопку отправки формы...
1629
+1
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
43393
+9
По спецификации HTML в option нельзя вставить ссылку, если все-таки её туда вставить, то работать она не будет. В таких случаях можно сделать перенаправление браузера по клику на JS или имитацию...
1478
0
Сборник jQuery приемов с textarea - получить содержимое, вставить значение, подсчет количества символов и строк и т.д.
22396
+3
Виджет на JQuery и AJAX, который покажет результаты поиска непосредственно при вводе в текстовое поле.
8202
0