jquery - window.history.pushState 不会回到历史

标签 jquery ajax html pushstate

我在试验 history.pushstate 事件时遇到了一点问题。我对其进行了设置,使页面的 url 成为通过 AJAX 加载的页面的实际 URL,并且工作正常。

我知道它应该自动创建一个历史记录,加载以前加载的页面。不幸的是,帽子并没有发生,当我点击前进的后退时,网址确实发生了变化,但页面没有变化。 你能帮助我吗?这是我的简化代码:

    function hijackLinks() {
        $('a').live("click", function (e) {
            e.preventDefault();
            loadPage(e.target.href);    
            direction = $(this).attr('class');        
        });   
    }


    function loadPage(url) {
        if (url === undefined) {
            $('body').load('url', 'header:first,#content,footer', hijackLinks);
        } else {
            $.get(url, function (data) {
                $('body').append(data);
                 window.history.pushState(url, url, url);

                if (direction === "leftnav") {
                   //DO STUFF
                }
                if (direction !== "leftnav") {
                   //DO STUFF
                }

                setTimeout(function () {
                  //DO STUFF
                },1000);
            });
        }
    }
    $(document).ready(function () {
        loadPage(); 

    });

最佳答案

想通了,我刚刚补充说:

    window.addEventListener("popstate", function(e) {
    loadPage(location.pathname);
});

到页面末尾

关于jquery - window.history.pushState 不会回到历史,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398071/

相关文章:

javascript - 更改 div 内容 - 广告底部/顶部

javascript - 在 jQuery Mobile data-role=listview 中动态填充 <li>

javascript - 寻求更优雅的解决方案来防止 preventDefault() 困境

javascript - 将 URL 字符串中的变量从 javascript 发布到 PHP (AJAX)

javascript - 同步AJAX,页面加载gif

javascript - PHP、JavaScript AJAX

javascript - 有没有办法实时从 jQuery 加载特定功能?

html - 即使条件未满足,ng-if'ed 元素也会被渲染

javascript - 如何验证文本区域中的电子邮件地址

javascript - 表单提交没有看到我的自定义复选框为 :checked