有效处理浏览器历史记录和后退按钮

时间:2013-02-13 19:33:39

标签: javascript html5 jquery jquery-plugins

我有什么: 使用以下脚本显示页面的网站:

var FluidNav = {
    init: function() {
        $("a[href*=#]").click(function(e) {
        e.preventDefault();
            if($(this).attr("href").split("#")[1]) {
                FluidNav.goTo($(this).attr("href").split("#")[1]);
            }
        });
        this.goTo("home");
    },
    goTo: function(page) {
        var next_page = $("#"+page);
        var nav_item = $('nav ul li a[href=#'+page+']');
        $("nav ul li").removeClass("current");
        nav_item.parent().addClass("current");
        FluidNav.resizePage((next_page.height() + 40), true, function() {
             $(".page").removeClass("current"); next_page.addClass("current"); 
        });
        $(".page").fadeOut(500);
        next_page.fadeIn(500);

点击链接时,网址栏中的网址不会更改,但会显示内容。无法使用“浏览器返回”按钮。内部链接带有#hash标记。 EX:abc.com/#homeabc.com/#services。但是,如果我要在网址栏中输入abc.com/#services,我会被重定向到#home页面。

我想要实现的目标: 当我点击链接时,要更改的URL,以及要在其历史记录中记录的浏览器。当我按下后退按钮时,该网站会生成我之前访问过的页面内容。 当我打开新标签页并输入abc.com/#services时,要发送到#services页面而不是主页

我尝试了什么 这些是我读过的资源以及我尝试过的解决方案:

似乎尽管我付出了努力,但我的网站正在使用的代码中有一些东西妨碍了上述方法。

如何解决这个问题,我们非常感谢您的建议。

0 个答案:

没有答案