如何更改窗口URL而无需重定向或重新加载页面?

时间:2019-04-07 05:57:17

标签: web

当我单击instagram帖子下方的“喜欢者”时,它会弹出一个喜欢该帖子的人列表。也会以某种方式将网址从www.instagram.com更改为www.instagram.com/p/<some random alphanumeric text here>/liked_by/。如您所见,该URL已更改,而没有重新加载该页面,并且其中也没有#。怎么做?

我有.NET背景,但是我不了解最新的Web技术,并且这个问题与技术无关,因为我不知道instagram使用的是什么技术,但随时可以向我指出正确的方向,并且我将研究等效的.NET。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找history.pushState方法,它允许您将URL推送到导航页面的历史记录,并将URL引用更改为您传递的值。在您提供的示例中,就像这样:

history.pushState({}, "some title", "/p/<some random alphanumeric text here>/liked_by/")

它接受相对路径和绝对路径。

所有这些都是通过浏览器端的javascript完成的,我认为没有javascript就无法做到这一点。如果要检查历史记录api,可以check it here