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 к элементу, его содержимое становится доступно для редактирования пользователю, а...
10712
+13
Из-за отправки файла, медленного интернета или тормозящего браузера, пользователь может нажать кнопку отправки формы...
2485
+2
AJAX позволяет отправить и получить данные без перезагрузки страницы. Например, делать проверку форм, подгружать контент и т.д. А функции JQuery значительно упрощают работу.
58002
+8
В случаях когда пользователь свернул окно браузера или перешел на другую вкладку, есть смысл отключить ненужные сетевые...
941
0
По спецификации HTML в option нельзя вставить ссылку, если все-таки её туда вставить, то работать она не будет. В таких случаях можно сделать перенаправление браузера по клику на JS или имитацию...
3401
0
Сборник jQuery приемов с textarea - получить содержимое, вставить значение, подсчет количества символов и строк и т.д.
25822
+4