我想在用户离开页面时发出HTTP POST(甚至可以使用GET的请求)。我尝试使用'onbeforeunload''unload'事件监听器来观察用户何时重定向到其他页面。
有什么方法可以检查用户是否在默认的“ onbeforeunload”确认框中单击了“ Leave”或“ Stay”按钮?我只想在他单击“离开”按钮时才调用该函数(发出请求)。
我该如何实现?
onunload(或onbeforeunload)无法将用户重定向到另一个页面。这是出于安全原因。
如果要在用户离开页面之前显示提示,请使用
onbeforeunload:
window.onbeforeunload = function(){
return 'Are you sure you want to leave?';
};
或使用jQuery:
$(window).bind('beforeunload', function(){
return 'Are you sure you want to leave?';
});
这只会询问用户是否要离开该页面,如果他们选择保留在页面上,则无法重定向他们。如果他们选择离开,浏览器将转到他们告诉其离开的地方。
您可以在页面卸载之前使用onunload进行操作,但是您不能从那里重定向(Chrome 14+会阻止onunload内部的警报):
window.onunload = function() {
alert('Bye.');
}
或使用jQuery:
$(window).unload(function(){
alert('Bye.');
});
嗯,这就是我所做的: