window.history.pushState()数据,检索它们的方式和时间?

时间:2017-06-18 16:53:48

标签: javascript html5

window.history.pushState([data], 'Title', '/url');

当我在这里设置数据时,我该如何使用它们以及这是什么类型的数据?

2 个答案:

答案 0 :(得分:5)

data对象用于存储您选择的与历史记录项关联的结构化数据,以便在重新访问状态时,应用程序具有与之关联的一些可用数据。也许您可以保存用户之前查看的页面位置,或者他们输入但从未提交的某些表单选项。

当触发后退按钮时,浏览器将调用popstate()方法,这将弹出推送到堆栈的最新状态。开发人员应该向window对象添加一个事件监听器,以便自定义处理popstate事件(例如使用与状态相关的数据)。

// Below function will get fired for every app-wide popstate
window.addEventListener('popstate', function(event) {
  // Can access state data using event.state.data
});

答案 1 :(得分:1)

这就像被推送状态的unqiue标识符。当你想要为该特定状态替换State时,它会很有用。

示例:

存储状态: var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html");

你可以这样做来取代状态: history.replaceState(stateObj, "page 3", "bar2.html");

参考:https://developer.mozilla.org/en/docs/Web/API/History_API#The_pushState()_method