window.history.replaceState中的'data'是什么?

Mik*_*ico 6 javascript html5

我们正在使用window.history.replacestate开发一个项目.不幸的是我们不是很擅长javascript.

基本上我们使用它来替换"根"链接的任意数量的短链接.例如 :

domain.com/fJfk8
domain.com/9dkDl
domain.com/fjgdD
Run Code Online (Sandbox Code Playgroud)

将所有'出现'为:

domain.com/nice_url
Run Code Online (Sandbox Code Playgroud)

它没有必要工作所以我们将javascript放在页面中,然后在浏览器中它会很好,如果没有,它们会获得短代码.

注意:我们想要历史!

所以我们只是使用:

window.history.replaceState('Object','Nice URL Title', '/nice_url');
Run Code Online (Sandbox Code Playgroud)

问题是这似乎有效但我们不理解'对象'(数据)部分.

究竟是什么?

Mat*_*att 5

您可以将参数设置为任意数据,该数据将在事件中可用的对象的参数Object中可用。stateeventpopstate

换句话说,您可以将其设置为您想要的任何内容,以帮助您在用户浏览其历史记录时将网页恢复到所需状态。

有关更多信息,请参阅有关 window.history 的 MDC 文档

window.history.replaceState({
    foo: 'bar'
}, 'Nice URL Title', '/nice_url');

window.onpopstate = function (e) {
    if (typeof e.state == "object" && e.state.foo == "bar") {
        alert("Blah blah blah");
    }
};

window.history.go(-1);
Run Code Online (Sandbox Code Playgroud)