我需要在 javascript/jquery 中捕获刷新事件。我的整个页面都是由 ajax 加载的,我的意思是我页面上的所有链接和所有表单都是由 ajax 请求发送的。现在,当用户刷新我的页面时,这个刷新事件打破了我想要通过我的 ajax 请求实现的所有目标,所以我真的需要捕获用户刷新调用并停止它们,然后将此刷新事件作为 ajax 调用转发。
这甚至可能吗?而且我不想抓住 F5 按键 - 这还不够。
我需要在 javascript/jquery 中捕获刷新事件。我的整个页面都是由 ajax 加载的,我的意思是我页面上的所有链接和所有表单都是由 ajax 请求发送的。现在,当用户刷新我的页面时,这个刷新事件打破了我想要通过我的 ajax 请求实现的所有目标,所以我真的需要捕获用户刷新调用并停止它们,然后将此刷新事件作为 ajax 调用转发。
这甚至可能吗?而且我不想抓住 F5 按键 - 这还不够。
不可能阻止所有形式的刷新。了解HTML5 pushState,以便您的用户可以轻松地刷新和使用后退/前进按钮。
<script type="text/javascript">
window.onbeforeunload = function() {
return "are you sure to leave this page";
}
</script>
不幸的是,HTML5 History API 不一致且有缺陷,此外它在所有 HTML5 浏览器中的实现方式不同 + 与 HTML4 浏览器不兼容。
幸运的是,History.js 是一个很好的工作,它为 HTML5 浏览器提供了交叉兼容性(确保所有 HTML5 浏览器都按预期工作),并且可以选择为 HTML4 浏览器提供哈希回退(包括对数据、标题、pushState 和 replaceState 功能的维护支持)。