0

我需要在 javascript/jquery 中捕获刷新事件。我的整个页面都是由 ajax 加载的,我的意思是我页面上的所有链接和所有表单都是由 ajax 请求发送的。现在,当用户刷新我的页面时,这个刷新事件打破了我想要通过我的 ajax 请求实现的所有目标,所以我真的需要捕获用户刷新调用并停止它们,然后将此刷新事件作为 ajax 调用转发。

这甚至可能吗?而且我不想抓住 F5 按键 - 这还不够。

4

3 回答 3

4

不可能阻止所有形式的刷新。了解HTML5 pushState,以便您的用户可以轻松地刷新和使用后退/前进按钮。

于 2013-04-09T15:05:59.143 回答
2

演示小提琴

    <script type="text/javascript">
        window.onbeforeunload = function() {
            return "are you sure to leave this page";
        }
    </script>
于 2013-04-09T15:06:19.237 回答
1

不幸的是,HTML5 History API 不一致且有缺陷,此外它在所有 HTML5 浏览器中的实现方式不同 + 与 HTML4 浏览器不兼容。

幸运的是,History.js 是一个很好的工作,它为 HTML5 浏览器提供了交叉兼容性(确保所有 HTML5 浏览器都按预期工作),并且可以选择为 HTML4 浏览器提供哈希回退(包括对数据、标题、pushState 和 replaceState 功能的维护支持)。

于 2013-04-09T15:18:51.820 回答