查询window.onbeforeunload

时间:2013-02-22 17:40:43

标签: jquery onbeforeunload

window.onbeforeunload( function() { 
      return "Are you sure?" ;
});

我想在卸载页面之前执行一个AJAX调用,有没有其他方法可以实现这一点,因为这不起作用? 等待,谢谢:)

2 个答案:

答案 0 :(得分:0)

请改为尝试:

window.onpagehide(function() {
    return "Are you sure?";
}

希望这会有所帮助!!

答案 1 :(得分:0)

如果要在页面卸载时运行函数,可以尝试$(window).unload(),但不能阻止页面卸载或重定向用户。此外,某些浏览器会在卸载时阻止警报。

$(window).unload(function(){
  $.ajax({url:"http://localhost:80/ajax.php?", async:false});
  alert('Bye.');
});

但你最好的办法是做一些事情:

$(window).bind('beforeunload', function(){
   $.ajax({url:"http://localhost:80/ajax.php?", async:false});
  return 'Are you sure you want to leave?';
});

//我在IE9,Chrome和Firefox中对此进行了测试,并且每次都成功启动了ajax调用。

JSFiddle example

此外,如果您正在页面卸载时执行ajax请求,请尝试将async设置为false:

$.ajax({url:"http://localhost:80/ajax.php?", async:false});