Javascript 什么是';数据';在window.history.replaceState中

Javascript 什么是';数据';在window.history.replaceState中,javascript,html,Javascript,Html,我们正在使用window.history.replacestate处理一个项目。不幸的是,我们不太擅长javascript 本质上,我们使用它来替换任何数量的指向“根”链接的短链接。例如: domain.com/fJfk8 domain.com/9dkDl domain.com/fjgdD 是否所有“显示”为: domain.com/nice_url 它不必工作,所以我们将javascript放在页面和浏览器中,这样做很好,如果不行,他们就会得到短代码 注意:我们不想要历史 因此,我们只是使

我们正在使用window.history.replacestate处理一个项目。不幸的是,我们不太擅长javascript

本质上,我们使用它来替换任何数量的指向“根”链接的短链接。例如:

domain.com/fJfk8
domain.com/9dkDl
domain.com/fjgdD
是否所有“显示”为:

domain.com/nice_url
它不必工作,所以我们将javascript放在页面和浏览器中,这样做很好,如果不行,他们就会得到短代码

注意:我们不想要历史

因此,我们只是使用:

window.history.replaceState('Object','Nice URL Title', '/nice_url');
问题是,这似乎可行,但我们不理解“对象”(数据)部分


到底是什么

您可以将
对象
参数设置为任意数据,该数据将在
事件
对象的
状态
参数中可用,该对象在
popstate
事件中可用

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

有关更多信息,请参阅


OK(快速读取状态是什么…)。所以在我们的例子中,如果用户通过历史记录返回,我们不需要做任何事情,因为Url将在更改的状态下工作-我们可以将其保留为空?@Mike:您很可能会这样做。如果用户通过
pushState
replaceState
在其历史记录中向后导航到历史记录堆栈上的页面,则该页面不会自动更新;由您捕获
onpopstate
事件并将页面更改为所需状态。
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);