如何使用JavaScript移除页面刷新确认弹窗?附相关代码
移除页面刷新确认弹窗的方法
当前代码触发的页面刷新确认弹窗,根源在于window.onbeforeunload函数第一行就返回了非空字符串——浏览器只要检测到这个事件函数返回字符串,就会弹出离开/刷新确认框。另外要注意,原代码里return语句写在最前面,导致后面的endStream调用和$.get请求根本不会执行,这也是个隐藏问题。
要移除弹窗同时保留原有逻辑,按以下方式修改:
- 删除原有的
return "Your files are not completely uploaded..."这一行,或者将返回值改为undefined(只要不返回字符串,就不会触发弹窗) - 把return语句移到函数最后,确保所有业务逻辑代码都能执行到
修改后的完整代码:
window.onbeforeunload = function(e) { if(is_streaming){ endStream('Yes'); } if(viewStreamId != 0 && !is_streaming){ var leaveData = user_info.id+','+user_info.first_name+','+user_info.profile_photo+','+viewStreamId; $.get( request_source()+'/live.php', {action: 'leave', query: leaveData} ); } // 不返回字符串,浏览器就不会弹出确认弹窗 return undefined; };
如果只是临时需要移除弹窗,也可以直接解绑这个事件:
window.onbeforeunload = null;
内容的提问来源于stack exchange,提问作者Cuet In
相关产品推荐
相关产品推荐

