javascript - 确认浏览器退出/浏览器退出技术

标签 javascript jquery onunload browser-close

我已经四处寻找了一段时间,但还没有完全找到我一直在寻找的东西。 我的网页存储报告,用户可以保存这些报告。

我正在寻找一种方法,使用 jquery 或 javascript onunload/onbeforeunload 来询问用户是否希望在浏览器关闭/导航时保存报告或继续而不保存。

使用 onbeforeunload 我可以让用户能够停止导航并手动保存,尽管我更愿意通过对话框完成保存。 onbeforeunload 的另一个问题是点击标签也会调用 onbeforeunload 方法。

保存是异步的,需要几毫秒。

欢迎提出任何建议。

问候, 拜伦·科布。

最佳答案

这可能是唯一一次 syncronized Ajax 调用是合理的。

window.onbeforeunload = function(){
   $.ajax({
      url:      'somewhere',
      type:     'POST',
      dataType: 'text',
      async:    false,
      data:     'you_data_here',
      success:  function(data){
      }
   });
};

这样您应该能够将一些数据传输到您的服务器,而浏览器会阻止卸载。这有一些缺点。最明显的是,这可能不是很好的用户体验,具体取决于要传输多少数据以及需要多长时间。
另一个是这种方法在某些(较旧的)浏览器中不可用。

一个不错的选择可能是不时或在每次操作后自动保存您的数据。

关于javascript - 确认浏览器退出/浏览器退出技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966973/

相关文章:

java - 如何在 Struts 2 中使用 Ajax 调用获得成功结果后重定向到另一个 JSP

jquery - 如何在 jqGrid 中添加和编辑表单具有不同的编辑选项

javascript - onunload 无法与 Safari 中的 onbeforeunload 结合使用

Javascript onload 和 onunload

php - 自定义跨域度量跟踪系统在 php 中的实现

javascript - TypeScript:在对象扩展方法中推断 <this> 的类型

javascript - 为什么我不能更改 css 中的背景属性?

asp.net - 有没有办法在用户离开页面时使用 ASP.NET 始终运行一些服务器端代码?

javascript - 如何通过复选框选择表中特定行的全部和取消选择 - React Js

javascript - Jquery - 图像未在第一次点击时加载