如何防止刷新浏览器触发window.onbeforeunload事件

时间:2014-07-25 17:32:19

标签: javascript jquery

我正在网站上工作,我需要在用户离开网站之前从数据库中删除所有数据,可能我将不得不使用window.onbeforeunload()事件我已经弄清楚链接的问题但我仍然当我刷新页面事件window.onbeforeunload()触发器并且我只希望在浏览器关闭时触发此功能时我面临一个问题如何防止此功能在浏览器刷新时触发。此外,调用onbeforeunload事件的Actions如下:

  • 直接在浏览器中或通过链接导航到其他页面。
  • 关闭当前浏览器窗口或标签页。重新加载当前的
  • 页。通过
  • 操作当前加载页面的URL 来自JavaScript的
  • 位置对象。调用window.navigate方法。
  • 调用window.open或document.open方法打开
    文档在同一窗口中。

我已经弄清楚除了第三个重点加载当前页面之外的所有要点我希望这个触发器不能重新加载当前页面。 这是我的jquery代码。

<script type="text/javascript">
      $(document).ready(function(){
       $("a").click(function(){
         window.onbeforeunload = null;
       });
    });

      var session_id="<?php echo $this->session->userdata('session_id');?>";
      var hook = true;
      window.onbeforeunload = function() {
        if (hook) {

    $.ajax({
        type:"post",
        url:"<?=base_url();?>temp_delete",
        data:"session_id="+session_id,
        success: function(data)
        {
            alert(data);
            $("#remove").html();
        }
       });
          return "Did you save your stuff?"
        }
      }

      function unhook() {
        hook=false;
      }
    </script>

0 个答案:

没有答案