我如何在jquery中重置beforeunload

时间:2017-12-20 11:49:07

标签: javascript jquery onbeforeunload

我有这个流程设置,询问用户是否希望离开聊天室。如果是,则处理卸载并在房间中写入用户离开聊天室并将聊天室占用减少1的消息。

那部分工作正常......

但是,如果用户选择留下(并点击弹出窗口上的'那么它会保留在页面上就可以了。但是下次用户决定离开时,前导码不会被执行第二次,他在页面上没有收到任何问题。

那么如果它们停留在页面上以便再次执行,我如何重置beforeunload?

这是我的代码:

   /* ask them the question about leaving */

   $(window).one("beforeunload", function () {
       return 'Do you want to leave the chat room?';
   });

   /* they chose to leave */

  $(window).one("unload", function () {    

     /* post left room text msg */        
     /* adjust room count */

 });

1 个答案:

答案 0 :(得分:1)

您正在使用.one附加事件处理程序 - 这意味着它们只会根据您的描述执行一次。请尝试将其更改为.on,如下所示:

   //Ask them the question about leaving
   $(window).on('beforeunload', function () {
       return 'Do you want to leave the chat room?';
   });

   //They chose to leave    
   $(window).on('unload', function () {    
      /* post left room text msg */        
      /* adjust room count */    
   });