2013-07-23 280 views
0

我有一個遺留代碼使用下面的代碼提交一些數據。SetTimeout在瀏覽器關閉

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

上面的塊是在提交方法中。即使在瀏覽器關閉的情況下,我也想執行此代碼,所以我在onbeforeunload中調用相同的Submit方法,但它不執行SubmitForm函數。任何見解?

+3

你不能那樣做。 – SLaks

回答

2

你不能那樣做。

如果瀏覽器已關閉(或正在關閉),則不需要等待表單文章的等待時間。

0

關閉後,您無法在瀏覽器(或任何JavaSrcipt VM)中運行JavaScript代碼。

0

如果瀏覽器已關閉,則無法執行任何操作,因爲沒有任何內容可以運行您的代碼。相反,您可以使用所謂的非異步ajax請求,而不使用setTimeout。這可以使用jQuery Library輕鬆完成。

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

這將在瀏覽器關閉之前運行,或者用戶將離開您的網站。