Safari中没有发生$ .post调用

时间:2011-04-05 07:22:01

标签: jquery post safari

我面临着一个奇怪的问题。关闭完整的safari浏览器时,我需要使用jquery post调用一个函数。但是当关闭safari浏览器时,这不是调用。但是美女在所有其他浏览器中都有效。

以下是我的代码,

<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
   $.post("test.php");
}
</script>

请在野生动物园进行这项工作。

谢谢, Dinesh Kumar Manoharan

2 个答案:

答案 0 :(得分:8)

这可能是因为您正在进行异步发布,并且Safari在发出请求之前停止运行JavaScript(由于页面被卸载)。尝试使用$.ajax代替$.post并将async设置为false来阻止呼叫。像(未经测试)的东西:

function confirmExit() {
    $.ajax({
        'async': false,
        'type': 'POST',
        'url': 'test.php'
    });
}

答案 1 :(得分:1)

根据Mozilla MDC,window.onbeforeunload不会在Safari中返回任何内容,因此请根据上面的链接示例修改代码。

SO about this上还有另一个帖子。希望它有所帮助。