在' onbeforeunload'内部发出GET / POST请求功能

时间:2017-05-10 07:42:02

标签: javascript jquery angularjs javascript-events onbeforeunload

我想在用户离开页面时进行HTTP POST(甚至是GET很好)请求。 我试过' onbeforeunload' '卸载'当用户重定向到其他不同页面时要监视的事件侦听器。

有什么方法可以检查用户是否点击了“离开”字样。或者'保持'默认按钮' onbeforeunload'确认框? 我只想在他点击“离开”时调用该功能(提出请求)。按钮。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

你可以尝试

window.onunload

该功能取决于浏览器

  

有window.onbeforeunload和window.onunload,根据浏览器的不同,使用方式不同。Quote from here

答案 1 :(得分:0)

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.');
});

答案 2 :(得分:0)

嗯,这就是我所做的:

  1. 当用户尝试离开页面时 - 在 onbeforeunload 事件监听器中调用API(我想在用户点击“离开”按钮时调用)。
  2. 如果用户点击“离开”按钮,他将被重定向到其他页面。
  3. 如果用户点击停留按钮,我在 onbeforeunload 事件监听器中有一个超时功能,该功能将在一定时间(2秒)后执行,用户将在当前页面上停留。 [在此API中,我撤销了在第1步中调用的API所执行的操作]
相关问题