JQuery предотвращает закрытие окна

Я хочу спросить пользователя, действительно ли он хочет покинуть страницу или нет, когда он нажимает кнопку закрытия, как это делается в документах Google. Как это сделать с помощью jquery?


person Vetragon    schedule 14.10.2009    source источник


Ответы (2)


Вы устанавливаете свойство onbeforeunload окна в функцию.

В этом сообщении есть хороший пример как это сделать.

Или другой пример:

<script language="JavaScript">
  var needToConfirm = true;

  window.onbeforeunload = confirmExit;
  function confirmExit()
  {
    if (needToConfirm)
      //return message to display in dialog box;
  }
</script>

...

<input type="Submit" value="Save" onclick="needToConfirm = false;" />


А чтобы установить needToConfirm для своей формы, вы можете:

$(document).ready(function() { 
    $(':input', document.myForm).bind("change", function() { needToConfirm = true; }); // Prevent accidental navigation away
});
person Prody    schedule 14.10.2009

Следующее сработало для меня;

 $(window).unload(function() {
                if(event.clientY < 0) {
                    //do whatever you want when closing the window..
                }
            });
person Dilhan Jayathilaka    schedule 17.11.2011
comment
Я думаю, что событие «перед выгрузкой» гораздо полезнее, чтобы спросить пользователя, хочет ли он сохранить свои изменения: $(window).bind('beforeunload', function() { ... }); - person Alexis Wilke; 29.12.2013
comment
Ах! Похоже, что за последние несколько лет это изменилось... так что в 2011 году, возможно, это все еще работало. - person Alexis Wilke; 29.12.2013