当前位置: 首页 > 面试题库 >

window.history.pushState不会返回历史

冯渝
2023-03-14
问题内容

我在尝试使用history.pushstate事件时遇到了一些问题。我进行了设置,以使页面的url是通过AJAX加载的页面的实际URL,并且可以正常工作。

我了解它应该自动创建历史记录,以加载先前加载的页面。不幸的是,帽子没有发生,当我单击后退时,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);
});

到页面末尾



 类似资料:
  • web3.eth.getPastLogs()方法根据指定的选项返回历史日志。 调用: web3.eth.getPastLogs(options [, callback]) 参数: options:Object - 过滤器对象,包含如下字段: fromBlock - Number|String: The number of the earliest block ("latest" may be g

  • 我有一个查询和一张表。查询“EmployeeTraining”包括员工姓名、参加的培训课程、参加的日期和有效期。我希望LeftJoin返回的是所有可用的培训课程,以及每个员工缺少的课程,因此在essense中,任何空值都是空的。 “应用培训”共有5项记录。一些员工只参加了4/5的课程,在“员工培训”记录中只有4项记录。left join不应该在“DateTake”和“Expiration”中使用空

  • 最近,在Google日历中添加了新事件并尝试从Google日历API中获取后,我从未获得我帐户主日历的新事件列表。 此外,我还尝试从开发人员控制台获取:https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it 它给出了相同的空项目列表作为响应,即使未来的事件存在。 但是我能够获取其他日历列表

  • 在我的布局中,有一个用于搜索的EditText,在EditText下面有一个列表。现在我在弹出窗口中放大这个布局。现在我的问题是 1) 如果我将PopupWindow focusable设置为true,则PopupWindow布局以外的所有位置都将不可单击。因此,我不能通过单击外部或单击设备的后退按钮来关闭窗口 2)如果我设置PopupWindow可聚焦假,那么PopupWindow打开和关闭是完

  • 问题内容: 我试图从用户连续读取输入,直到用户键入退出为止。我仅通过输入“ quit”进行测试,但console.hasNext()似乎未返回false。实际上,似乎该程序在第7行(hasNext()行)上被阻止。有任何想法吗? 问题答案: 如果将your 声明为,它将询问是否要接收下一个值。然后,该类将等待用户输入内容,然后返回true。 保留文件之类的东西,其中输入大小是固定的。这样,当查询文

  • 我一直在尝试使用服务帐户访问Calendar v3 API。我已经添加了范围https://www.googleapis.com/auth/calendar并与该服务帐户的电子邮件地址共享了我的日历。 我也一直在用同一个服务帐户访问https://www.googleapis.com/auth/coordinate scope,它工作得很好。 此外,尝试撤销访问权限,如这里所述:为什么谷歌日历AP