2013-07-23 5 views
0

У меня есть устаревший код, который передает некоторые данные, используя следующий код.SetTimeout в браузере закрыть

setTimeout(function() 
    { 
    SubmitForm(); 
    }, 
    0); 

Над блоком есть метод отправки. Я хочу выполнить этот код, даже когда браузер закрыт, поэтому я вызываю тот же метод Submit в onbeforeunload, но не выполняет функцию SubmitForm. Какие-нибудь идеи?

+3

Вы не можете этого сделать. – SLaks

ответ

2

Вы не можете этого сделать.

Если браузер закрыт (или закрыт), нет времени ждать, пока сообщение формы должно пройти.

0

Вы не можете запустить код JavaScript в браузере (или любой JavaSrcipt VM, если на то пошло) после его закрытия.

0

Вы не можете ничего сделать, если браузер закрыт, потому что вам нечего запускать код. Вместо этого вы можете использовать так называемые неасинхронные запросы ajax, без setTimeout. Это можно сделать легко, используя jQuery Library.

$(window).on('beforeunload',function(){ 
    $.ajax({ 
     method: "POST", 
     url: "[insert your php file path here]", 
     data: $('#myForm').serialize(), 
     async: false, 
    }); 
}); 

Это будет работать прямо перед тем, как браузер будет закрыт или пользователь будет перемещаться от вашего сайта.