在地址栏中更改网址,无需重新加载
这个问题在这里已经有了答案:
你可以在较新的浏览器中使用; 在旧版本中,只能更改散列。 这似乎是一个关于这个主题的好文章:http://html5doctor.com/history-api/
您正在寻找的是HTML5提供的History
API。 它带有像history.pushState(...)
, history.popState(...)
,它可以让您动态更改URL,而无需完全分配新的URL。
它被许多网站使用,包括我猜想,Facebook本身,如果你打开一个聊天框,并在页面之间导航,聊天框不会重新加载。 这意味着所有新内容都是通过Ajax获取的,但是URL不会改变,是不是? 但它确实如此。 我认为他们通过history.pushState(...)
做到这一点,您只需将新的状态推入历史堆栈,并且它仅更改页面的某个部分。 你会在这里找到一个很好的教程。
上一篇: Change URL in address bar without having to reload
下一篇: Change URL in browser address bar without reload existing page