访问pushState状态对象内容

Access pushState state object content

本文关键字:对象 状态 pushState 访问      更新时间:2023-09-26
$(function(){
    $('button').click(function(e){
        e.preventDefault();
        var nextUrl = 'page1.html';
        var previousUrl = window.location.href;
        $.get(nextUrl, function(data){
            $('body').html(data);
            history.pushState({content: data}, '', nextUrl); <--How to retrieve the content data
        });
    });
    $(window).bind('popstate', function(e){
        console.log(e.state.content);
        //How do I get the data stored in pushState?
    });
});
</script>

我已经在状态pushState({content:data}..中存储了整个页面信息,但是我如何在popstate中检索它?

谢谢!

当活动的历史记录条目发生变化时,在窗口上触发popstate事件。最常见的是当浏览器的后退或前进按钮被点击(或调用back(), forward()或go()被执行)。

传入侦听器回调的事件包含一个状态属性,用于检索与历史条目相关联的状态对象。

window.addEventListener('popstate', function(event) {
  var state = event.state;
});

值得注意的是,调用pushState()和replaceState()不会触发popstate事件。

Chrome和Safari会在页面加载时触发一个popstate事件,但Firefox不会。

window.history.state['content']