Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止页面刷新_Javascript_Jquery_Ajax_Html - Fatal编程技术网

Javascript 如何防止页面刷新

Javascript 如何防止页面刷新,javascript,jquery,ajax,html,Javascript,Jquery,Ajax,Html,我需要捕获javascript/jquery中的刷新事件。我的整个页面都是通过ajax加载的,我的意思是页面上的所有链接和表单都是通过ajax请求发送的。现在,当用户刷新我的页面时,这个刷新事件正在刷新我想要通过ajax请求实现的所有功能,所以我真的需要捕获用户刷新调用并停止它们,然后将这个刷新事件作为ajax调用转发 这可能吗?我不想抓住F5键,这是不够的。不可能阻止每种形式的刷新。了解,以便用户可以轻松刷新和使用后退/前进按钮 window.onbeforeunload=函数(){ re

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


这可能吗?我不想抓住F5键,这是不够的。

不可能阻止每种形式的刷新。了解,以便用户可以轻松刷新和使用后退/前进按钮


window.onbeforeunload=函数(){
return“您确定要离开此页面吗”;
}

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


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

+1,请注意,这当然会出现在任何离开页面的情况下(链接、后退/前进等),但您可以添加自己的方式,至少关闭正常链接等
    <script type="text/javascript">
        window.onbeforeunload = function() {
            return "are you sure to leave this page";
        }
    </script>