【问题标题】:Get state of pushstate() from popState()从 popState() 获取 pushstate() 的状态
【发布时间】:2015-01-11 21:21:11
【问题描述】:

我有这个:

history.pushState({id:1}, 'new title', new_url);

现在,当有人使用浏览器的后退按钮时,我如何检索 id (1)?

$(window).bind('popstate', function(event) {
   event.state.id # gives an error
});

我尝试了上述方法(如答案中所建议的那样),我得到的错误是“无法读取未定义的属性 'id'”。

【问题讨论】:

    标签: javascript history.js


    【解决方案1】:

    好吧,我终于在这里找到了答案:

    popstate returns event.state is undefined

    上面写着:

    Event 是 jQuery 事件对象,而不是 DOM 对象。

    要访问 DOM 事件对象,请使用 event.originalEvent: http://jsfiddle.net/pimvdb/un4Xk/1/

    var state = event.originalEvent.state; 记住,状态只有在新状态有数据时才定义,所以点击后返回初始状态时不可用:

    initial state
    link to state 1
    back button to initial state (no data available)
    

    但是,在单击、再次单击然后返回时可用:

    initial state
    link to state 1
    link to state 2
    back button to state 1 (data available)  
    

    【讨论】:

    • 我错过了数据部分。谢谢
    【解决方案2】:

    根据MDN,您也可以使用:

    var currentState = history.state;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 2012-04-03
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 2015-10-16
      相关资源
      最近更新 更多