window.history.pushState([data], 'Title', '/url');
当我在这里设置数据时,我该如何使用它们以及这是什么类型的数据?
答案 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