我想在关闭窗口之前调用一个函数。
例如,我想在关闭页面之前调用ajax。我正在使用以下代码,但它不工作。
$(window).bind('beforeunload', function(){
$.ajax({
url:'logout.php',
type:'POST'
});
});
在关闭窗口之前调用函数的最好方法是什么?
您的代码很可能正在运行,但由于它启动了一个异步 ajax请求,并且浏览器在触发onbeforeunload
后立即删除了页面,因此请求可能永远不会被发送(或者即使发送了,也可能被中止)。
onbeforeunload
的事件处理程序只允许做非常有限的一组事情(列表因浏览器而异,并且列表经常随着浏览器更新而变化)。出于这个原因,将onbeforeunload
用于除之外的任何目的,这是它的预期目的,给您最后的机会警告用户离开页面会丢失信息,这不是一个好主意。
您编写的代码只是进行ajax调用,但甚至在调用之前,您的窗口就会退出。即使请求被发送,它也可能在中间被终止。
试试下面的代码:
function WinClose() {
$.ajax({
url:'logout.php',
type:'POST'
});
return false;
}
window.onbeforeunload = WinClose;
在<head>