window.history.pushState 不会回到历史记录中

2023-12-09

我在尝试 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);
});

到页尾

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window.history.pushState 不会回到历史记录中 的相关文章

随机推荐