我想在关闭窗口之前调用一个函数。
例如,我想在关闭页面之前调用ajax。我正在使用以下代码,但它不起作用。
$(window).bind('beforeunload', function(){
$.ajax({
url:'logout.php',
type:'POST'
});
});
在关闭窗口之前调用函数的最佳方法是什么?
答案 0 :(得分:0)
您的代码很可能正在运行,但是当它启动异步 ajax请求并且浏览器在触发onbeforeunload
后立即拆除页面时,请求可能永远不会被发送(或如果它被发送,可能会被中止)。
onbeforeunload
的事件处理程序只允许执行非常有限的事情(并且列表因浏览器而异,并且列表会随着浏览器更新而频繁更改) 。出于这个原因,使用onbeforeunload
用于除了一个目的以外的任何其他目的,为您提供最后一个机会,通过离开页面来警告用户丢失信息,不是一个好主意。
答案 1 :(得分:0)
您编写的代码只是进行ajax调用,但即使在调用之前,您的窗口也会退出。即使请求已发送,也可能在中间中止。
答案 2 :(得分:0)
试试这段代码:
function WinClose() {
$.ajax({
url:'logout.php',
type:'POST'
});
return false;
}
window.onbeforeunload = WinClose;
将此代码写入<head>