Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 触发popstate时是否刷新页面一次?_Javascript_Jquery_Scrolltop_Page Refresh_Html5 History - Fatal编程技术网

Javascript 触发popstate时是否刷新页面一次?

Javascript 触发popstate时是否刷新页面一次?,javascript,jquery,scrolltop,page-refresh,html5-history,Javascript,Jquery,Scrolltop,Page Refresh,Html5 History,我有一个很长的页面,可以通过scrollTop()导航 因为scrollTop()不适用于浏览器的后退按钮(浏览器会忽略它),所以我想尝试在每个popstate上刷新浏览器,这样它就可以工作了,用户的滚动位置将是它应该在的位置 问题是我的代码导致无限刷新 $(window).bind('popstate', function(event) { //var path = window.location.pathname; //var filename = p

我有一个很长的页面,可以通过
scrollTop()
导航

因为scrollTop()不适用于浏览器的后退按钮(浏览器会忽略它),所以我想尝试在每个popstate上刷新浏览器,这样它就可以工作了,用户的滚动位置将是它应该在的位置

问题是我的代码导致无限刷新

    $(window).bind('popstate', function(event) {
        //var path = window.location.pathname;
        //var filename = path.match(/.*\/([^/]+)\.([^?]+)/i)[1];
        //var pos = "#" + filename;
        //$(document).scrollTop(pos);
        location.reload();
    });

如何将其修复为仅刷新一次?我尝试了
one()
我认为刷新页面不会为您启用浏览器历史记录

jQuery烧烤

演示:

历史JS

我使用的是历史api,问题在于滚动,而不是一般的历史实现。浏览器在向后/向前导航时控制滚动位置。ajax的东西,我也有,很好用。如果我能让浏览器在popstate上只刷新一次,那就行了。所有的插件都不适用于此,因为滚动,如果只是ajax,那么是的,它们可以工作。