我有这个:
history.pushState({id:1}, 'new title', new_url);
现在,当有人使用浏览器的后退按钮时,如何检索id(1)?
$(window).bind('popstate', function(event) {
event.state.id # gives an error
});
我尝试了上述内容(如答案所示),我得到的错误是"无法读取属性' id'未定义"。
答案 0 :(得分:2)
好吧,我终于找到了答案:
popstate returns event.state is undefined
它说:
事件是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)
答案 1 :(得分:2)
根据MDN,你也可以使用:
var currentState = history.state;