好的,我有一个问题,下面的代码。当用户关闭浏览器时会发生什么,它会提示他们单击确定或单击取消离开该页面。点击确定会触发一个window.location重定向到用户跟踪的另一个页面(是的,为了避免火焰战争,有一个辅助系统来保证准确的跟踪,在用户从任务管理器中剔除浏览器的情况下(如同样的问题所述))。取消将保留在页面上,问题是无论按下哪个按钮,都会重定向,就好像您想离开页面一样。相关代码如下。Javascript onbeforeunload问题
window.onbeforeunload = confirmExit;
function confirmExit()
{
var where_to = confirm("Click OK to exit, Click CANCEL to stay.");
if (where_to == true)
{
window.location="logout.php";
}
if (where_to == false){
alert("Returning...");
}
}
Ajax请求不起作用。我的意思是,他们确实有效,但有时他们没有足够的时间在页面实际卸载之前完成。我们已经在我们的开发机器上尝试了这种技术,确保请求完成的唯一方法是使其同步。这对IE造成了很大的问题,因为它对每个浏览器实例的Ajax请求堆栈有限。 – 2010-06-17 13:02:45
@Igor:公平点。我又做了一次本地测试,它可以在IE8和Chrome上运行,但不能在FF3和Safari4上运行。 – BalusC 2010-06-17 13:15:09
@ IgorZinov'yev你可以实现这个没有问题,如果ajax调用是一个火灾,并忘记。电话会一直打到服务器。 – thomaux 2013-04-26 08:05:22