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