2009-07-09 2 views
8

У меня есть страница с формой, которая отправляется через ajaxSubmit() (так, без изменения страницы).Как предотвратить изменение пользователем страницы с помощью jQuery

Моя цель состоит в том, что, когда пользователь пытается изменить страницу (или даже закрыть браузер), я спрашиваю его, действительно ли хотите выйти из страницы без отправки формы (точно так же, как это делает gmail).

Gmail, например, делает это с помощью всплывающего окна window.confirm, но если это возможно, я хотел бы обработать его с помощью настраиваемых сообщений и параметров.

JQuery есть событие выгрузки:

$(window).unload(function() { alert("Bye now!"); }); 

но это позволяет мне просто сделать что-то перед выходом страницы; Мне нужно «заблокировать» выход страницы, если пользователь нажимает на соответствующую кнопку.

Итак, как обрабатывать (и отменять) событие выхода страницы?

ответ

16

попробуйте следующее. Демо here

<script type="text/javascript"> 

     function unloadPage(){ 
      return "dont leave me this way"; 
     } 

     window.onbeforeunload = unloadPage; 

</script> 
+0

Да, вот оно! Мне жаль, что я не могу настроить «предупреждение», но я не думаю, что это будет большой проблемой. – Strae

10

Возможно Свяжите "onbeforeunload" событие с JQuery:

$(window).bind('beforeunload', function(e) { 
    return "ATTENZIONE!!"; 
}); 

Он работает !!

Смежные вопросы