如何知道用户何时离开页面并刷新页面

时间:2011-07-25 20:22:03

标签: javascript jquery

我想在用户离开页面之前进行AJAX调用(基本上在离开页面之前和刷新页面之前)?

如何做到这一点。我试图用jQuery搜索一些东西,但没有得到任何东西。

我尝试使用以下代码 -

window.onbeforeunload(function(){alert('before unload');});

但是离开页面(关闭浏览器选项卡)或刷新页面时,警报框永远不会出现。

如何实现这一目标?

3 个答案:

答案 0 :(得分:7)

您应该从jquery尝试unload()

$(window).unload(function(){
   //Do your call
   alert('before unload');
  });

oro你可以使用beforeunload事件。你应该测试一下,因为浏览器倾向于以不同的方式改变这些东西。取自jquery文档:

  

unload事件的确切处理因版本而异   浏览器版本。例如,某些版本的Firefox触发了   跟踪链接时的事件,但窗口关闭时不响应。在   在实际使用中,应该在所有支持的浏览器上测试行为,   与专有的前载事件形成​​鲜明对比。

答案 1 :(得分:5)

$(window).unload(function() {
    alert('Visitor left page');
});

关于ajax调用,您可以执行此操作,但必须将async设置为false

$.ajax({
   async: false,
   ...
 });

答案 2 :(得分:2)

你的代码完全错了。 unbeforeunload用于询问此人是否真的要离开页面。 你需要卸载。

window.onunload = function() {
  // Make your AJAX call

}

更好地使用jQuery.unload()方法