18

我有这段简单的代码-

$(window).bind('beforeunload', function(){
    alert("Good Bye")
});

适用于 Firefox、IE8 但不适用于 Chrome。这是一个已知问题还是有任何替代方案?

实际上,我要做的是在用户尝试关闭浏览器时记录详细信息。

function LogTime()
{
    jQuery.ajax({
      type: "POST",
      url: "log.php",
      data: "",
      cache: false,
      success: function(response)
      {
      }
    );
}

$(window).bind('beforeunload', function(){
    LogTime();
});

这适用于 Firefox,但不适用于 Chrome

4

6 回答 6

15

而是返回一个字符串:

$(window).on('beforeunload', function(){
    return "Good bye";
});​
于 2012-05-21T06:45:35.913 回答
7

在所有浏览器上试试这个:-

window.addEventListener("beforeunload", function (e) {

  var confirmationMessage = "\o/";     
  e.returnValue = confirmationMessage;           
  return confirmationMessage;       

});
于 2017-11-28T10:00:36.230 回答
6

我必须将它包含在一个 jQuery(document).ready 让它在 chrome 中工作

<script>
  jQuery(document).ready( 
    function () { 
      jQuery(window).bind('beforeunload',  
        function (e) {  

          [code here]

        } 
      );

    } 
  );
</script>
于 2012-09-27T15:20:52.773 回答
6

试试下面:

$(window).on('beforeunload', function(){
  return "Good Bye";
});
于 2012-05-21T06:45:55.380 回答
2

尝试这个:

function LogTime(){

jQuery.ajax({
  type: "POST",
  url: "log.php",
  data: "",
  cache: false,
  success: function(response){

  }
});

}

 $(window).bind('beforeunload', function(){
     LogTime();
     return "You're leaving?";
 });

看来只要在函数体的末尾为这个事件返回一个字符串,就可以在该字符串之前运行代码。

于 2013-11-13T08:37:49.337 回答
0

如果您需要在卸载文档之前发送一些分析数据,请选择navigator.sendBeacon()方法而不是 XMLHttpRequest。

sendBeacon() 方法旨在执行少量数据的非阻塞发送。

但首先检查canIuse 报告,因为该方法在全球尚不支持。

于 2017-12-17T14:48:08.077 回答