function Unloader(){ var o = this; this.unload = function(evt){ var message = "Вы действительно хотите покинуть страницу?"; if (typeof evt == "undefined") evt = window.event; if (evt) evt.returnValue = message; return message; } this.resetUnload = function() { $(window).off('beforeunload', o.unload); setTimeout(function(){ $(window).on('beforeunload', o.unload); }, 1000); } this.init = function() { $(window).on('beforeunload', o.unload); $('a').on('click', o.resetUnload); $(document).on('submit', 'form', o.resetUnload); // F5 и Ctrl+F5, Enter $(document).on('keydown', function(event){ if((event.ctrlKey && event.keyCode == 116) || event.keyCode == 116 || event.keyCode == 13){ if(confirm('Вы уверены, что хотите обновить страницу')){ o.resetUnload(); } else { return false; } } }); } this.init(); } $(function(){ if(typeof window.obUnloader != 'object') window.obUnloader = new Unloader(); })
Событие закрытия и обновления вкладки браузера javascript

Событие закрытия и обновления вкладки браузера на javascript. Предупреждает пользователя о закрытии или обновлении вкладки и дает возможность отменить действие, тем самым позволяет сохранить пользователя на странице.