我如何在jquery中重置beforeunload

问题描述 投票:0回答:1

我有这个过程设置,询问用户是否希望离开聊天室。如果是,则处理卸载并在房间中写入用户离开聊天室并将聊天室占用减少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 */

 });
javascript jquery onbeforeunload
1个回答
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 */    
   });
© www.soinside.com 2019 - 2024. All rights reserved.