如何防止页面刷新

时间:2013-04-09 15:04:04

标签: javascript jquery ajax html5

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

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

3 个答案:

答案 0 :(得分:4)

无法阻止每种形式的刷新。了解HTML5 pushState,以便您的用户可以轻松刷新并使用后退/前进按钮。

答案 1 :(得分:2)

Demo Fiddle

    <script type="text/javascript">
        window.onbeforeunload = function() {
            return "are you sure to leave this page";
        }
    </script>

答案 2 :(得分:1)

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

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