Javascript 什么是';数据';在window.history.replaceState中
我们正在使用window.history.replacestate处理一个项目。不幸的是,我们不太擅长javascript 本质上,我们使用它来替换任何数量的指向“根”链接的短链接。例如: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放在页面和浏览器中,这样做很好,如果不行,他们就会得到短代码 注意:我们不想要历史 因此,我们只是使
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);