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

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

4

2 回答 2

0

试试这个:

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

希望这会有所帮助!

于 2013-02-22T17:52:45.493 回答
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 示例

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

$.ajax({url:"http://localhost:80/ajax.php?", async:false});
于 2013-02-22T18:01:07.103 回答