浏览器关闭时的SetTimeout

时间:2013-07-23 14:47:54

标签: javascript settimeout

我有遗留代码,使用以下代码提交一些数据。

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

上面的块是提交方法。我想在浏览器关闭时执行此代码,因此我在onbeforeunload中调用相同的Submit方法,但它不执行SubmitForm函数。任何见解?

3 个答案:

答案 0 :(得分:2)

你做不到。

如果浏览器关闭(或关闭),则没有等待表单发布的等待时间。

答案 1 :(得分:0)

关闭后,您无法在浏览器(或任何JavaScript VM)中运行JavaScript代码。

答案 2 :(得分:0)

如果关闭浏览器,则无法执行任何操作,因为无法运行代码。相反,您可以使用所谓的非异步Ajax请求,而不使用setTimeout。这可以使用jQuery Library轻松完成。

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

这将在浏览器关闭或用户离开您的网站之前运行。