我想在用户离开页面之前进行AJAX调用(基本上在离开页面之前和刷新页面之前)?
如何做到这一点。我试图用jQuery搜索一些东西,但没有得到任何东西。
我尝试使用以下代码 -
window.onbeforeunload(function(){alert('before unload');});
但是离开页面(关闭浏览器选项卡)或刷新页面时,警报框永远不会出现。
如何实现这一目标?
答案 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()方法