获取不到onpopstate事件的state?

代码如下:

$(function() {
    $('a').bind('click', function() {        var actionObj = $(this);        var actionText = actionObj.text();        var stateObj = {            title : actionText,            url : actionObj.attr('href'), 
            msg : actionText
        };        window.history.pushState(stateObj, actionObj, actionObj.attr('href'));

    });    window.onpopstate = function(e) {        console.log(e.state);
    };
})

查了一些资料,完全不知道问题在哪里……

chrome 或者 firefox 都不行……不知道哪里做错了……


达令说
浏览 1830回答 1
1回答

慕姐8265434

其实你只需要理解一点,onpopstate是在history.back()之后调用的。所以这个时候e.state里返回实际上是back之后的状态,比如我在下面的代码里。一次push了两个state,当我点击一次后退的时候{page : 2}的state已经pop出去了,这时候e.state里就只剩下{page : 1}了。(function() {     $('a').bind('click', function() {         window.history.pushState({page : 1}, 'test', '#test1');         window.history.pushState({page : 2}, 'test', '#test2');         return false;     });     window.onpopstate = function(e) {         console.log(e.state);     };})();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript