当popstate被触发时刷新页面一次?

时间:2013-05-12 08:57:00

标签: javascript jquery scrolltop page-refresh html5-history

我有一个很长的页面,可以通过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()但是它一样。

1 个答案:

答案 0 :(得分:-1)

有许多用于浏览器历史记录的jQuery和普通JS插件,可以满足您的需求 我认为刷新页面不会为您启用浏览器历史记录。

jQuery BBQ
http://benalman.com/projects/jquery-bbq-plugin/
演示:
http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/#chicken.html

历史JS
https://github.com/browserstate/history.js/