这是pushStatepopstate事件的简单示例:

<button id="example_btn">Click me</button>

<script>
$("#example_btn").click(function(){
            history.pushState(
                {
                    'url' : "example.htm"
                }, null, "example.htm");
});
$(window).bind('popstate', function (event) {
    if (event.originalEvent.state) {
        console.log(event.originalEvent.state.url);
    }
});
</script>

触发popstate事件时,它将显示当前页面的URL。

我的问题是:

在这种情况下触发popstate事件时,如何获取上一页页面的网址?我尝试了document.referrer,但未显示任何内容。

最佳答案

请尝试将previousUrl保留在变量中并收听。

<button id="example_btn">Click me</button>

<script>
var previousUrl = null;
$("#example_btn").on('click', function(){
           previousUrl = location.href;
             history.pushState(
                {
                    'url' : "example.htm"
                }, null, "example.htm");
});
window.onpopstate = function (event) {
   console.log('Previous url was : ', previousUrl);
};
</script>

10-08 04:28