Javascript 如何更改URL而不刷新像Google+;这样的页面;?

Javascript 如何更改URL而不刷新像Google+;这样的页面;?,javascript,html,Javascript,Html,当我检查Google+时,当我看到URL的使用时,我感到惊讶。Google配置文件URL在不重新设计页面的情况下更改。例如,这是一个“照片”选项卡URL:当您单击“视频”选项卡时,URL将准确地转到,而无需刷新页面。谷歌编码器是如何成功做到这一点的?您可以尝试使用散列。谷歌不是这样做的,但它并不强制刷新。在Javascript中,您可以使用 parent.location.hash = "Text"; 因此,URL将 编辑:这对Google+来说似乎是新的。GMail使用类似哈希的 https

当我检查Google+时,当我看到URL的使用时,我感到惊讶。Google配置文件URL在不重新设计页面的情况下更改。例如,这是一个“照片”选项卡URL:当您单击“视频”选项卡时,URL将准确地转到,而无需刷新页面。谷歌编码器是如何成功做到这一点的?

您可以尝试使用散列。谷歌不是这样做的,但它并不强制刷新。在Javascript中,您可以使用

parent.location.hash = "Text";
因此,URL将

编辑:这对Google+来说似乎是新的。GMail使用类似哈希的

https://mail.google.com/mail/u/1/#inbox/130f48da33c5330

查看历史记录对象

尤其是history.pushState和history.replaceState


(应该提到的是,这只适用于现代浏览器,因为旧浏览器使用哈希)。

这是关于HTML5的。请看“onpopstate事件”。有关更多信息,请访问链接

您可以尝试使用pushState。 您可以将URL更改为同一域中的另一个URL,但出于安全原因,无法更改域。在Javascript中,您可以使用

pushState(“对象或字符串”、“标题”、“新url”)

对象和字符串是您的域,例如www.google.co.in 你可以给你想要的东西。 最后,您放置了新的url,例如“webhp?source=search\u app”


例如window.history.pushState(“www.google.co.in”,“google”,“webhp?source=search_app”)

我知道hash方法,但是Google+方法看起来很好也很有趣。因为我认为这是不可能的。他特别要求使用问题中显示的方法,该方法不使用散列,而是更改实际的URL。