关于js阻止浏览器关闭的问题

现在有个需求是要在浏览器关闭前去执行方法.找到一位大佬@xbynet写的是这样的:

window.isCloseHint = true;
//初始化关闭
window.addEventListener("beforeunload", function(e) {
    if (window.isCloseHint) {
        var confirmationMessage = "要记得保存!你确定要离开我吗?";
        (e || window.event).returnValue = confirmationMessage; // 兼容 Gecko + IE
        return confirmationMessage; // 兼容 Gecko + Webkit, Safari, Chrome
    }
});
如果你页面中有需要跳转而不像提示对话框的地方(比如form表单提交),可以通过window.isCloseHint 变量来控制

js阻止页面关闭正确姿势

这个是点击浏览器关闭按钮的时候会弹出一个对话框,确认后会关闭浏览器,取消不会.现在需要点击确认后执行方法1,取消执行方法2.这样的话需要怎么写呢

阅读 14.6k
2 个回答

参考这个文章。当页面卸载时可以执行 navigator.sendBeacon 来做一些异步任务。

?Javascript - 使用 navigator.sendBeacon() 上报数据 - 开发哥 : http://kaifage.com/notes/76/n...

可以自己做一个弹出框组件,然后自定义事件。在监听关闭按钮的事件里控制这个组件的显示与否。

而且难度似乎没有太大

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏