2013-07-26 3 views
5

Мне нужно вызвать пользователя перед тем, как он покинет страницу, при подтверждении закройте вкладку и если ничего не сделаете. Я хочу отправить ajax-вызов на onbeforeunload.подтвердить перед onbeforeunload

Моя единственная идея состояла в том, чтобы написать обработчики для обоих onunload и onbeforeunload, как это:

window.onbeforeunload = function(){ 
    return 'Are you sure you want to leave?'; 
}; 
window.onunload = function(){ 
    $.get(
     "http://www.mysite.com/php/myhandler.php", 
     { data: 1 } 
    ); 
}; 

, но это, похоже, не работать в jsFiddle

+0

Страница прервана до завершения ajax. Это случай, когда ваш вызов ajax должен быть синхронным. –

+0

сделано !!!! попробуйте код !! –

+0

+ 1, никогда не думал об этом –

ответ

1

Он отлично работает в этой скрипке -> Perfectly working fiddle!!!

function warning(){ 
      if(true){ 
       return "You are leaving the page"; 
       $.ajax({ 
         url: "test.php", 
         type: "post", 
         data: values to send 
         }) 
      } 
     } 
     window.onbeforeunload = warning; 
+0

Но он не будет запрашивать пользователя перед отъездом – Nikita240

+0

Да, если пользователь нажимает «ОК», а затем заходим и закрываем вкладку , если нет, то просто ничего не делать – Nikita240

+0

Вы хотите, чтобы вкладка открыта, если отменена ?? –

0

Просто поместите их все в onbeforeunload

window.onbeforeunload = function(){ 
    $.get(
     "http://www.mysite.com/php/myhandler.php", 
     { data: 1 } 
    ); 
    return 'Are you sure you want to leave?'; 
}; 
+0

Но разве это не будет выполнение AJAX независимо от быстрого результата? Я только хочу, чтобы он выполнил вызов, если пользователь действительно уходит. – Nikita240

+0

Сделайте это так: Продвиньте пользователя, если да, сделайте AJAX, если нет, не AJAX и не верните false. –

+1

Вы имеете в виду вот это? window.onbeforeunload = функция() { если (подсказка ("Вы уверены, что вы хотите оставить?)) { $ .get ( "myphp.php", {вал: 1} ); } прочее return false; }; – Nikita240

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