我有一个遗留代码使用下面的代码提交一些数据。SetTimeout在浏览器关闭
setTimeout(function()
{
SubmitForm();
},
0);
上面的块是在提交方法中。即使在浏览器关闭的情况下,我也想执行此代码,所以我在onbeforeunload中调用相同的Submit方法,但它不执行SubmitForm函数。任何见解?
我有一个遗留代码使用下面的代码提交一些数据。SetTimeout在浏览器关闭
setTimeout(function()
{
SubmitForm();
},
0);
上面的块是在提交方法中。即使在浏览器关闭的情况下,我也想执行此代码,所以我在onbeforeunload中调用相同的Submit方法,但它不执行SubmitForm函数。任何见解?
你不能那样做。
如果浏览器已关闭(或正在关闭),则不需要等待表单文章的等待时间。
关闭后,您无法在浏览器(或任何JavaSrcipt VM)中运行JavaScript代码。
如果浏览器已关闭,则无法执行任何操作,因为没有任何内容可以运行您的代码。相反,您可以使用所谓的非异步ajax请求,而不使用setTimeout
。这可以使用jQuery Library轻松完成。
$(window).on('beforeunload',function(){
$.ajax({
method: "POST",
url: "[insert your php file path here]",
data: $('#myForm').serialize(),
async: false,
});
});
这将在浏览器关闭之前运行,或者用户将离开您的网站。
你不能那样做。 – SLaks